【问题标题】:Python: List of addressable IP addressesPython:可寻址 IP 地址列表
【发布时间】:2011-05-30 08:33:37
【问题描述】:

在给定 netaddr IPRange 或 netaddr IPNetwork 的情况下,创建可寻址 IP 地址列表的最 Pythonic 方式是什么。

如果我使用这些,那么它包括子网和广播地址:

hosts = list(IPRange('212.55.64.0','212.55.127.255'))
hosts = IPNetwork('192.168.0.1/24')

所以我需要说 IPNetwork(192.168.0.0/27) 是从 192.168.0.1 到 192.168.0.31 的列表,注意不能包括 192.168.0.0 和 192.168.0.32。

编辑

感谢您提供有关如何使用 IPy 进行操作的信息。有人知道netaddr是否可以做到吗?

【问题讨论】:

    标签: python network-programming cidr


    【解决方案1】:

    以下是使用 netaddr 执行所需操作的快速脚本
    (Python 2.7,Linux)

    from netaddr import *
    
    def addr(address, prefix):
        ip = IPNetwork(address)
        ip.prefixlen = int(prefix)
        return ip
    
    myip = addr('192.168.0.0', '27')
    
    for usable in myip.iter_hosts():
        print '%s' % usable
    

    【讨论】:

      【解决方案2】:

      经过一番研究,我发现了这种方式:

       l = list(netaddr.IPNetwork('192.168.0.0/27').iter_hosts())
      

      【讨论】:

        猜你喜欢
        • 2021-10-06
        • 2011-10-06
        • 2010-11-22
        • 2017-05-16
        • 2012-09-17
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        • 2013-02-22
        相关资源
        最近更新 更多