小编Mar*_*vin的帖子

Python 长 IP 子网数组(可以工作,但速度很慢)

我有一个很长的 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)

python python-3.x

1
推荐指数
1
解决办法
361
查看次数

标签 统计

python ×1

python-3.x ×1