Python文件练习_查找log中的IP并统计

需求:监控日志,如果有攻击,就把ip加入黑名单

分析:

  1、打开日志文件,读取文件中的所有的内容

  2、提取内容中的ip

  3、把ip放入到列表中去,在用set去重,得到独立不同的ip数

  4、循环set中的ip,到list中去进行ip个数的统计,超过50次的加入到黑名单

  日志信息如下:

178.210.90.90 - - [04/Jun/2017:03:44:13 +0800] "GET /wp-includes/logo_img.php HTTP/1.0" 302 161 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"
178.210.90.90 - - [04/Jun/2017:03:44:13 +0800] "GET /blog HTTP/1.0" 301 233 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"
178.210.90.90 - - [04/Jun/2017:03:44:15 +0800] "GET /blog/ HTTP/1.0" 200 38278 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"
66.249.75.29 - - [04/Jun/2017:03:45:55 +0800] "GET /bbs/forum.php?mod=forumdisplay&fid=574&filter=hot HTTP/1.1" 200 17482 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-"
37.9.169.20 - - [04/Jun/2017:03:47:59 +0800] "GET /wp-admin/security.php HTTP/1.1" 302 161 "http://nnzhp.cn/wp-admin/s

import time
count=0 #初始的文件指针设置为0
while True:
ip_list = [] #每次循环时把列表清空,因为是按1分钟进行统计的
with open("access.log","r",encoding="utf-8") as fr:
fr.seek(count) #根据文件指针进行文件内容读取
for line in fr: #循环拿每一行内容
ip_list.append(line.split("-")[0]) #取每一行的ip
count=fr.tell() #读完之后更新文件的指针
for ip in set(ip_list): #循环读取集合中的ip并到列表中进行统计
if ip_list.count(ip)>50:
print("把ip为%s的加入到黑名单"%ip)
fr.close() #最后关闭文件句柄
time.wait(60)

      
posted on 2018-05-07 13:01 进击的菜鸟啊 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zpbk1991/p/9002114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值