0

如何获取包含给定 IP 地址的 /8 子网。例如,子网 10.0.0.0/8 用于 ip 10.1.1.1

我为机智的netaddr lib尝试了它,但它没有做它应该做的事情

network = netaddr.IPNetwork(ip)
network.prefixlen=8
ip_subnet=network.cidr

ip 是给定的 ip 地址

4

2 回答 2

1

使用 ipaddr ,首先安装模块

pip install ipaddr

然后从中导入 IPv4Network

from ipaddr import IPv4Network

masknet = IPv4Network('192.168.1.1') # Ip Address
print masknet.netmask
# OR
masknet = IPv4Network('192.168.1.1/8')
print masknet.netmask

结果:

>>> print masknet.netmask
255.255.255.255
>>> print masknet.netmask
255.0.0.0
于 2018-05-07T09:03:41.967 回答
0

您可以在创建 IPNetwork() 后使用 ip.network

ip = IPNetwork('10.1.1.1/8')
ip.network
Out[48]: IPAddress('10.0.0.0')
ip = IPNetwork('10.1.1.1/16')
ip.network
Out[50]: IPAddress('10.1.0.0')
ip = IPNetwork('10.1.1.1/24')
ip.network
Out[52]: IPAddress('10.1.1.0')
于 2018-05-07T09:14:57.977 回答