Python自动化-IP地址处理模块(IPy)

Python自动化-IP地址处理模块(IPy)环境Ubuntu18.04+Python3.6.7正文IPy这个强大的Python第三方包主要提供了包括网段、网络掩码、广播地址、子网数、IP类型的处理等等功能。安装sudopip3installIPy详细帮助可以使用help(IPy)所有方法以及常量>>>dir(IPy)[‘INT_TYPES’,’IP’,’IPSet’,’IPV6_MAP_M…

大家好,欢迎来到IT知识分享网。Python自动化-IP地址处理模块(IPy)"

环境

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

(0)
上一篇 2024-03-21 19:15
下一篇 2024-03-22 08:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信