Python - 在 authlog 中创建超过 5 次失败登录尝试的 IP 地址的黑名单文件
Posted
技术标签:
【中文标题】Python - 在 authlog 中创建超过 5 次失败登录尝试的 IP 地址的黑名单文件【英文标题】:Python - create blacklist file of IP addresses that have more than 5 failed login attempts in the authlog 【发布时间】:2010-03-24 17:51:47 【问题描述】:基本上我有一个 authlog/syslog 文件,其中包含登录尝试和 IP 地址的列表 - 我需要制作一个 Python 程序,该程序将创建一个 txt 文件,其中包含超过 5 次失败登录尝试的所有 IP 地址 - 一个有点像“黑名单”。
所以基本上是这样的:
如果“uniqueipaddress”和“authentication failure”出现5次以上,则将uniqueipaddress添加到txt文件中。
任何帮助将不胜感激 - 请尽量简化,因为我在 Python 编程方面非常非常缺乏经验!谢谢。
【问题讨论】:
【参考方案1】:对于每一行:
读取 IP 并尝试状态 按 IP 保存失败尝试次数的字典然后翻查字典:
打印以归档 5 次或更多尝试的所有 IPPython 提示:
逐行读取文件:for line in open(filename)
解析日志行完全取决于其格式。一些有用的 Python 工具是字符串的 split
方法和正则表达式
保留字典,即ips[ip]
是尝试次数
【讨论】:
谢谢,这有帮助 - 任何示例代码都有机会在实践中展示这一点吗?非常感谢。【参考方案2】:以下代码应执行与您要查找的内容类似的操作。它并不完美,但它是一个很好的起点。
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
【讨论】:
以上是关于Python - 在 authlog 中创建超过 5 次失败登录尝试的 IP 地址的黑名单文件的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能使用 `section .data:` 和 `section .text:` 在 C 中创建一个长度超过 61 个字符的 char 数组? [复制]