查找给定IP地址和CIDR的子网ID

时间:2019-06-27 18:41:52

标签: python-3.x networking ip lan

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

1 个答案:

答案 0 :(得分:0)

您可以使用内置模块ipaddressdoc):

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中。