大家好,欢迎来到IT知识分享网。
环境
Ubuntu18.04+Python3.6.7
正文
IPy这个强大的Python第三方包主要提供了包括网段、网络掩码、广播地址、子网数、IP类型的处理等等功能。
安装
sudo pip3 install IPy
详细帮助可以使用help(IPy)
所有方法以及常量
>>> dir(IPy)
['INT_TYPES', 'IP', 'IPSet', 'IPV6_MAP_MASK', 'IPV6_TEST_MAP', 'IPint', 'IPv4ranges', 'IPv6ranges', 'MAX_IPV4_ADDRESS', 'MAX_IPV6_ADDRESS', 'STR_TYPES', '_BitTable', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_checkNetaddrWorksWithPrefixlen', '_checkNetmask', '_checkPrefix', '_count0Bits', '_count1Bits', '_countFollowingZeros', '_intToBin', '_ipVersionToLen', '_netmaskToPrefixlen', '_parseAddressIPv6', '_prefixlenToNetmask', '_remove_subprefix', 'bisect', 'collections', 'intToIp', 'parseAddress', 'sys', 'types', 'xrange']
判断IP版本
帮助文档
| version(self)
| Return the IP version of this Object.
|
| >>> IP('10.0.0.0/8').version()
| 4
| >>> IP('::1').version()
| 6
>>> import IPy
>>> IPy.IP("127.0.0.1").version()
4
>>> IPy.IP("10.0.0.0/24").version()
4
>>> IPy.IP("::1").version()
6
解析IP地址段
>>> ips = IPy.IP("192.168.1.0/24")
>>> print(len(ips))
256
>>> for ip in ips:
... print(ip)
...
192.168.1.0
192.168.1.1
192.168.1.2
192.168.1.3
...
192.168.1.255
获取子网掩码、网络前缀、广播地址
>>> ips.netmask()
IP('255.255.255.0')
>>> ips.prefixlen()
24
>>> ips.broadcast()
IP('192.168.1.255')
IP地址反向解析、转进制、以及IPv4和IPv6相互转换
>>> ip.reverseName()
'100.1.168.192.in-addr.arpa.'
>>> ip.strBin()
'11000000101010000000000101100100'
>>> ip.strHex()
'0xc0a80164'
>>> ip.strDec()
'3232235876'
>>> ip.v46map()
IP('::ffff:192.168.1.100')
生成网段
>>> print(IPy.IP('127.0.0.1').make_net('255.0.0.0'))
127.0.0.0/8
>>> print(IPy.IP("192.168.1.0-192.168.1.255",make_net=True))
192.168.1.0/24
>>> print(IPy.IP("192.168.1.1/255.255.255.0",make_net=True))
192.168.1.0/24
获取不同类型(格式的网段)
>>> IPy.IP("192.168.10.0/24").strNormal()
'192.168.10.0/24'
>>> IPy.IP("192.168.10.0/24").strNormal(0)
'192.168.10.0'
>>> IPy.IP("192.168.10.0/24").strNormal(1)
'192.168.10.0/24'
>>> IPy.IP("192.168.10.0/24").strNormal(2)
'192.168.10.0/255.255.255.0'
>>> IPy.IP("192.168.10.0/24").strNormal(3)
'192.168.10.0-192.168.10.255'
IP比较
>>> "192.168.100.1" in IP("192.168.100.0/24")
True
>>> "192.168.200.1" in IP("192.168.100.0/24")
False
判断是否重叠
>>> IP("192.168.100.0/23").overlaps("192.168.100.0/24")
1 # 1 代表重叠
>>> IP("192.168.100.0/25").overlaps("192.168.100.0/24")
1
>>> IP("192.168.200.0/25").overlaps("192.168.100.0/24")
0
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11577.html