python程序提取唯一的IP地址并保存到另一个fi中

2024-06-02 04:29:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从snort日志文件中提取唯一的IP地址,并将它们存储在一个单独的文件中。如果它存在,那么就忽略它。但是输出也显示重复的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')'

结果是:

^{pr2}$

Tags: 文件inipforifisnotaddr
2条回答

您可以使用以下一行代码消除列表中的重复项:

lst2 = list(set(lst2))

我看不出你在哪里填写lstb,这可能就是你的解决方案不起作用的原因。在

如果您想要解决方案的修复,请考虑以下内容:

^{pr2}$

您正在检查:

if i not in lstb 

但是lstb从来没有在你的代码中使用过。在

相关问题 更多 >