我想从snort日志文件中提取唯一的IP地址,并将它们存储在一个单独的文件中。如果存在,那么就忽略它。但是输出也显示重复的IP地址。我如何防止这种情况?python程序提取唯一的IP地址并保存到另一个文件
这是我的代码:
#!/usr/bin/python
import re
lst = []
lst2 = []
lstb = []
logfile = open('/var/log/snort/alllogs', 'r')
blist = open('blacklist', 'ab+')
for lines in logfile.readlines():
lines = lines.rstrip()
badip = re.findall(r'[0-9]+(?:\.[0-9]+){3}',lines)
if badip is not None and badip not in lst:
lst.append(badip)
for ip in lst:
addr = ",".join(ip)
if ',' in addr:
s = addr.split(',')
for ip in s:
addr = "".join(ip)
if addr is not '':
lst2.append(addr)
else:
if addr is not '':
lst2.append(addr)
for i in blist:
lst2.append(i.strip())
for i in lst2:
if i not in lstb:
blist.write(i+'\n')'
结果是:
192.168.12.10
192.168.1.120
192.168.1.120
192.168.12.10
我只是错过了它。太差 谢谢你吉尔维耶夫提前 –
@RAZHamraz你应该接受答案,如果它解决了你的问题。 – giliev
确定它修复了giliev,但是当我再次运行该程序时,它会将重复的IP地址添加到黑名单文件中。第一个程序运行后 输出: 猫黑名单 192.168.12.10 192.168.1.120 第二个程序运行后 输出: 猫黑名单 192.168.12.10 192.168.1.120 192.168.12.10 192.168.1.120 我只是卡住了我在这里错过的东西☹ –