查找包含 IP 地址列表的 IP 前缀

问题描述 投票:0回答:1

我有一个 IP 地址列表,我想找到包含所有这些 IP 的最长前缀。

这本质上与

hosts
模块的
ipaddress
功能相反:

https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hosts

我扫描了

ipaddress
netaddr
的文档,但找不到类似的内容。

python-3.x networking ip-address subnet
1个回答
0
投票

我希望你需要类似

netaddr.spanning_cidr

In [1]: from netaddr import spanning_cidr

In [2]: list_of_ips = [
   ...:     '10.0.0.10',
   ...:     '10.0.0.11',
   ...:     '10.0.0.12',
   ...:     '10.0.0.13',
   ...:     '10.0.0.40',
   ...:     '10.0.0.43',
   ...:     '10.0.0.44',
   ...:     '10.0.0.45',
   ...:     '10.0.0.46',
   ...:     '10.0.0.47',
   ...:     '10.0.0.48',
   ...:     '10.0.0.49',
   ...:     '10.0.0.50',
   ...:     '10.0.0.51',
   ...:     '10.0.0.52',
   ...:     '10.0.0.53',
   ...:     '10.0.0.54',
   ...:     '10.0.0.55',
   ...:     '10.0.0.56',
   ...:     '10.0.0.57',
   ...:     '10.0.0.58',
   ...:     '10.0.0.59',
   ...:     '10.0.0.60',
   ...: ]

In [3]: spanning_cidr(list_of_ips)
Out[3]: IPNetwork('10.0.0.0/26')
© www.soinside.com 2019 - 2024. All rights reserved.