我有一个很长的 IP 子网数组(+/- 1000 个条目,800 万个 IP),我想检查某些 IP(列表)是否在该数组中。我的代码有效。但速度相当“慢”。由于我必须查找多个 IP 地址,因此我希望搜索速度更快。有没有什么方法可以改善数组的搜索?
数组示例:
nets = [
'192.168.1.0/24',
'192.168.2.0/24',
'192.168.3.0/24',
]
Run Code Online (Sandbox Code Playgroud)
要搜索的代码:
def search(ip_address):
for net in nets:
if ipaddress.ip_address(ip_address) in ipaddress.ip_network(net):
return True
return False
Run Code Online (Sandbox Code Playgroud)