【问题标题】:Finding a Subnet ID given an IP address and a CIDR在给定 IP 地址和 CIDR 的情况下查找子网 ID
【发布时间】:2019-11-09 19:53:50
【问题描述】:

给定主机的 IP 地址及其 CIDR(例如,分别为 143.204.181.28 和 143.204.176.0/21),是否可以获取主机所属的子网 ID 和属于的 IP 地址范围同一个子网?如果可能的话,如果有人提供一个 python 代码来演示如何实现这一点,我将不胜感激。

【问题讨论】:

    标签: python-3.x networking ip lan


    【解决方案1】:

    您可以使用内置模块ipaddress (doc):

    import ipaddress
    
    addr = ipaddress.ip_address('143.204.181.28')
    net = ipaddress.ip_network('143.204.176.0/21')
    
    for s in net.subnets():
        if addr in s:
            print('subnet:', s)
            ips = [*s]
            print('Subnet contains {} IPs'.format(len(ips)))
    

    打印:

    subnet: 143.204.180.0/22
    Subnet contains 1024 IPs
    

    IP 位于变量ips

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2014-12-31
      • 2012-12-23
      相关资源
      最近更新 更多