我想從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 我只是卡住了我在這裏錯過的東西☹ –