基本上我有一个authlog / syslog文件,其中包含登录尝试和IP地址列表 - 我需要制作一个Python程序,它将创建一个txt文件,其中包含超过5次失败登录尝试的所有IP地址 - 一种“黑名单”。
所以基本上是这样的:
如果“uniqueipaddress”和“authentication failure”出现超过5次,请将uniqueipaddress添加到txt文件。
任何帮助都将不胜感激 - 请尽量使其简单,因为我在Python编程方面非常非常缺乏经验!感谢。
答案 0 :(得分:1)
对于每一行:
然后翻阅字典:
Python提示:
for line in open(filename)
split
方法和正则表达式ips[ip]
是尝试次数答案 1 :(得分:0)
以下代码应该与您正在寻找的内容类似。它并不完美,但它是一个很好的跳跃点。
ips = {}
for line in open('your_log.txt'):
parts = line.split(' ') #assuming this is a good place to split
if parts[1] == "AuthenticationFailure":
if parts[0] in ips:
ips[parts[0]] += 1
else:
ips[parts[0]] = 0
for ip in [k for k,v in ips.iteritems() if v >= 5]:
#WRITE TO FILE HERE
这假设您的日志文件结构如下:
1.1.1.1 LoginSuccess
2.2.2.2 LoginSuccess
3.3.3.3 AuthenticationFailure