<p>我认为使用<a href="https://docs.python.org/3/library/ipaddress.html" rel="nofollow noreferrer">ipaddress</a>python标准库回答这个问题会很好</p>
<pre><code>import sys
import json
import re
from ipaddress import IPv4Address, AddressValueError
ipre = re.compile(r'\d+\.\d+\.\d+\.\d+')
with open(sys.argv[1]) as fin:
data = fin.read()
ips = []
for ip in ipre.findall(data):
# Validate found IP addresses
try:
ips.append(str(IPv4Address(ip)))
except AddressValueError as e:
print(f"IP address '{ip}' is invalid: {e}")
print(json.dumps(list(set(ips))))
</code></pre>
<p>这将为您提供一个唯一的已验证IP地址列表,其中包含一个JSON格式的列表</p>
<p>输入文件的第一行显示无效的IP地址</p>
<p>输入</p>
<pre><code>6T08:07:19.052699Z [SSHService b'ssh-userauth' on HoneyPotSSHTransport,666,500.188.86.172] login attempt [b'root'/b'admin'] succeeded
6T08:07:19.052699Z [SSHService b'ssh-userauth' on HoneyPotSSHTransport,666,5.188.86.173] login attempt [b'root'/b'admin'] succeeded
6T08:07:19.052699Z [SSHService b'ssh-userauth' on HoneyPotSSHTransport,666,5.188.86.172] login attempt [b'root'/b'admin'] succeeded
6T08:07:19.052699Z [SSHService b'ssh-userauth' on HoneyPotSSHTransport,666,5.188.86.172] login attempt [b'root'/b'admin'] succeeded
</code></pre>
<p>输出</p>
<pre><code>IP address '500.188.86.172' is invalid: Octet 500 (> 255) not permitted in '500.188.86.172'
["5.188.86.172", "5.188.86.173"]
</code></pre>