给出主机的IP地址及其CIDR(例如,分别为143.204.181.28和143.204.176.0/21),可以获取主机所属的子网ID和所属于的IP地址范围同一子网?如果可能的话,如果有人提供一个演示如何实现此目标的python代码,我将不胜感激。
答案 0 :(得分:0)
您可以使用内置模块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
中。