普通爬虫
- 分别查看有爬虫标志的访问次数和合计的总页面访问次数
| cat www.access.log | grep spider -c |
| cat www.access.log | grep spider | awk '{print $1}' | sort -n | uniq -c | sort -nr |
- 在防火墙上对其地址做限制
/etc/sysconfig/iptables
中添加规则
| -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.0.1/24 -j REJECT |
| -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.4.1/24 -j REJECT |
service iptables restart
使限制生效
恶意爬虫与访问
一般可以对网站访问日志做分析,通过分析单位时间里面某个ip访问服务器的次数等信息来找出爬虫的来源地址和恶意访问的来源地址
- 初步筛选
列出在一分钟内访问网站次数最多的前20位ip地址
| cat www.access.log | awk '{print $1 " " substr($4,14,5)}' | sort -n | uniq -c | sort -nr | head -20 |
这是一个 Linux 命令行脚本,用于统计 Apache 访问日志中最频繁的前 20 个 IP 地址和时间。解释如下:
cat www.access.log
:读取 Apache 访问日志文件。
awk '{print $1 " " substr($4,14,5)}'
:使用 awk 对读取的信息进行处理,提取出访问者的 IP 地址和访问时间。其中,$1 表示文件中每一行的第一个字段(即 IP 地址),$4 表示每一行的第四个字段(即时间戳),substr($4,14,5) 表示截取时间戳的第 14 个字符开始的 5 个字符,即小时:分钟。将提取出来的 IP 地址和时间以空格符号分隔开。
sort -n
:对处理后得到的结果按照IP地址进行排序。
uniq -c
:对排好序的结果进行去重和统计,并输出对应 IP 地址出现的次数。
sort -nr
:对上一步中统计出来的结果按照出现次数进行逆序排序。
head -20
:只输出排序后的前 20 个结果,即出现次数最多的前 20 个 IP 地址及其访问时间。
综上,这段命令用于统计 Apache 访问日志中的访问量数据,并显示出访问量排名前 20 的 IP 地址和时间。
- 单个IP访问时间段
查看一天中某个ip地址对网站服务器的访问时间分段情况。
| cat www.access.log | grep 60.190 .128 .6 | awk '{print $1 " " substr($4,14,5)}' | sort -n | uniq -c | sort -nr | head -20 |
- 单个IP访问详情
对这些命令中表现出的数量比较突出的一些ip地址,一般来说就是有问题的ip了,在配合
| cat www.access.log | grep ip地址 |
可以看看这些高强度的地址访问都在干些什么。是不是正常访问,如果不是就要考虑是否要做限制了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!