繁体   English   中英

Python如何获取IP地址的/ 8子网

[英]Python how get /8 subnet for an IP addres

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

我为wit netaddr lib尝试了一下,但是它没有做应该做的事情

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

ip是给定的ip地址

使用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

创建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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM