lingxia
\'\'\'写一个程序,监控nginx的日志,如果有人攻击就加入黑名单
把ip加入黑名单的策略是,1分钟之内,如果同一个ip请求超过200次,那就加入黑名单\'\'\'
\'\'\'分析:
1、打开文件 2、循环读取 3、分割字符串取值 4、统计次数 5、加入黑名单的命令 6、关闭文件 因为每次读文件都是从开头读的,所以导致以前已经读过的就重复了,所以要 记录每次读完后的文件指针位置,再seek到那个位置 tell()能记录文件指针
\'\'\' import time pin =0 # 指针默认等于0
while True:
  with open(\'access.log\',\'a+\') as fr
    ips = []
    fr.seek(pin)
    for line in fr:
      ip = line.split()[0]
      ips.append(ip)
    set_ips = set(ips)
    set_ip = set(ip)
    for set_ip in ipsets:
      if ips.count(ipset)>200:
        print(\'%s加入黑名单\'%ipset)
    pin = fr.tell()
  time.sleep(60)

 

分类:

技术点:

相关文章:

  • 2021-07-03
  • 2021-12-25
  • 2021-06-21
  • 2022-12-23
  • 2021-12-31
  • 2022-01-02
  • 2021-06-22
  • 2021-08-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-03
  • 2021-12-29
  • 2021-12-25
  • 2021-10-08
  • 2022-03-05
相关资源
相似解决方案