【问题标题】:How to find possible IP-Subnets from list of IP-Addresses in python如何从python中的IP地址列表中找到可能的IP子网
【发布时间】:2022-01-13 13:28:50
【问题描述】:

我有大量公共 IP 地址。 列表中有很多邻居地址,所以我想将邻居地址合并到子网中。

示例:

- 104.103.72.184/32 
- 92.123.194.10/32  
- 92.123.194.100/32 
- 92.123.194.105/32 
- 92.123.194.106/32 
- 92.123.194.107/32 
- 92.123.194.108/32 
- 92.123.194.109/32
- 92.123.194.110/32
- 92.123.194.112/32 
- 92.123.194.114/32 
- 92.123.194.115/32 
- 92.123.194.118/32 

结果应该是:

- 104.103.72.184/32 
- 92.123.194.10/32  
- 92.123.194.100/32 
- 92.123.194.104/29
- 92.123.194.113/32 
- 92.123.194.114/31  
- 92.123.194.118/32 

如何在 Python3 中实现这一点?

【问题讨论】:

    标签: python-3.x networking ip


    【解决方案1】:

    您可以使用 netaddr 模块。 您的代码可能如下所示:

    import sys
    from netaddr import IPAddress, cidr_merge
    
    fh     = open (sys.argv[1], 'r')
    iplist = list()
    for addr in fh:
        addr = IPAddress (addr.strip())
        iplist.append (addr)
    
    fh.close()
    print cidr_merge (iplist)
    

    您还可以找到有关如何 总结 IP 子网和地址组,在此 link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-25
      • 2015-06-22
      • 2011-05-30
      • 2011-10-06
      • 1970-01-01
      • 2016-11-17
      • 2020-01-03
      • 2021-01-24
      相关资源
      最近更新 更多