python自动化运维学习笔记2- 实用的IP地址处理模块IPy
2014-12-17 20:06
816 查看
2、实用的IP地址处理模块IPy
下载地址
https://pypi.python.org/packages/source/I/IPy/
安装
python setup.py install
2.1 - 判断IP地址版本
>>> from IPy import IP
>>> IP('10.0.0.0/8').version()
4
>>> IP('::1').version()
6
2.2 - 通过指定网段输出该网段的IP个数和地址清单
[root@lsn-linux ~]# python ip.py
64
182.168.8.0
182.168.8.1
182.168.8.2
182.168.8.3
182.168.8.4
182.168.8.5
182.168.8.6
...
2.3 - 反向解析地址格式
>>> from IPy import IP
>>> ip = IP('192.168.8.1')
>>> ip.reverseNames()
['1.8.168.192.in-addr.arpa.']
2.4 - 判断为公网或私网
>>> IP('8.8.8.8').iptype()
'PUBLIC'
>>> IP('192.168.8.1').iptype()
'PRIVATE'
2.5 - 转换地址格式
>>> IP('192.168.8.1').int() 十进制
3232237569
>>> IP('192.168.8.1').strHex() 十六进制
'0xc0a80801'
>>> IP('192.168.8.1').strBin() 二进制
'11000000101010000000100000000001'
>>> print IP(0xc0a80801) 反向转换
192.168.8.1
>>>
2.6 - 掩码格式转换
>>> print IP('192.168.8.0').make_net('255.255.255.0')
192.168.8.0/24
>>> print IP('192.168.8.0/255.255.255.0',make_net=True)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255',make_net=True)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255',make_net=False)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255')
192.168.8.0/24
2.7 - strNormal方法,返回格式不一样
>>> IP('192.168.8.0/24').strNormal(0)
'192.168.8.0'
>>> IP('192.168.8.0/24').strNormal(1)
'192.168.8.0/24'
>>> IP('192.168.8.0/24').strNormal(2)
'192.168.8.0/255.255.255.0'
>>> IP('192.168.8.0/24').strNormal(3)
'192.168.8.0-192.168.8.255'
>>>
2.8 - 多网络计算方法
IPy支持类似于数值型数据的比较,以帮助IP对象进行比较:
>>> IP('10.0.0.0/24')<IP('11.0.0.0/24')
True
判断IP地址和网段是否包含在另一个网段中:
>>> '192.168.8.1' in IP('192.168.8.0/24')
True
>>> IP('192.168.8.0/26') in IP('192.168.8.0/24')
True
>>>
overlaps判断两个网段是否存在重叠,返回1表示存在重叠,返回0表示不存在
>>> IP('192.168.8.0/26').overlaps('192.168.8.0/24')
1
>>> IP('192.168.8.0/26').overlaps('182.168.8.0/24')
0
>>>
2.9 - 根据输入的IP或子网返回网络、掩码、广播、反向解析、子网数、IP类型等信息。
[root@lsn-linux ~]# python ip2.py
Please Enter:10.0.0.1
reverses address is: 1.0.0.10.in-addr.arpa.
version is: 4
iptype is: PRIVATE
hexadecimal is: 0xa000001
binary is: 00001010000000000000000000000001
[root@lsn-linux ~]# python ip2.py
Please Enter:10.0.0.0/24
net is: 10.0.0.0
mask is: 255.255.255.0
broadcast is: 10.0.0.255
reverses address is: 0.0.10.in-addr.arpa.
subnet is 256
下载地址
https://pypi.python.org/packages/source/I/IPy/
安装
python setup.py install
2.1 - 判断IP地址版本
>>> from IPy import IP
>>> IP('10.0.0.0/8').version()
4
>>> IP('::1').version()
6
2.2 - 通过指定网段输出该网段的IP个数和地址清单
#!/usr/bin/python #__*__ coding:utf-8 __*__ #Filename:ip.py from IPy import IP def main(): ip = IP('182.168.8.0/26') print ip.len() for x in ip: print x if __name__=='__main__': main()
[root@lsn-linux ~]# python ip.py
64
182.168.8.0
182.168.8.1
182.168.8.2
182.168.8.3
182.168.8.4
182.168.8.5
182.168.8.6
...
2.3 - 反向解析地址格式
>>> from IPy import IP
>>> ip = IP('192.168.8.1')
>>> ip.reverseNames()
['1.8.168.192.in-addr.arpa.']
2.4 - 判断为公网或私网
>>> IP('8.8.8.8').iptype()
'PUBLIC'
>>> IP('192.168.8.1').iptype()
'PRIVATE'
2.5 - 转换地址格式
>>> IP('192.168.8.1').int() 十进制
3232237569
>>> IP('192.168.8.1').strHex() 十六进制
'0xc0a80801'
>>> IP('192.168.8.1').strBin() 二进制
'11000000101010000000100000000001'
>>> print IP(0xc0a80801) 反向转换
192.168.8.1
>>>
2.6 - 掩码格式转换
>>> print IP('192.168.8.0').make_net('255.255.255.0')
192.168.8.0/24
>>> print IP('192.168.8.0/255.255.255.0',make_net=True)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255',make_net=True)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255',make_net=False)
192.168.8.0/24
>>> print IP('192.168.8.0-192.168.8.255')
192.168.8.0/24
2.7 - strNormal方法,返回格式不一样
>>> IP('192.168.8.0/24').strNormal(0)
'192.168.8.0'
>>> IP('192.168.8.0/24').strNormal(1)
'192.168.8.0/24'
>>> IP('192.168.8.0/24').strNormal(2)
'192.168.8.0/255.255.255.0'
>>> IP('192.168.8.0/24').strNormal(3)
'192.168.8.0-192.168.8.255'
>>>
2.8 - 多网络计算方法
IPy支持类似于数值型数据的比较,以帮助IP对象进行比较:
>>> IP('10.0.0.0/24')<IP('11.0.0.0/24')
True
判断IP地址和网段是否包含在另一个网段中:
>>> '192.168.8.1' in IP('192.168.8.0/24')
True
>>> IP('192.168.8.0/26') in IP('192.168.8.0/24')
True
>>>
overlaps判断两个网段是否存在重叠,返回1表示存在重叠,返回0表示不存在
>>> IP('192.168.8.0/26').overlaps('192.168.8.0/24')
1
>>> IP('192.168.8.0/26').overlaps('182.168.8.0/24')
0
>>>
2.9 - 根据输入的IP或子网返回网络、掩码、广播、反向解析、子网数、IP类型等信息。
#!/usr/bin/python #__*__ coding:utf-8 __*__ #Filename:ip2.py from IPy import IP def main(): ips=raw_input('Please Enter:') ip=IP(ips) if ip.len()>1: print'net is:',ip.net() print'mask is:',ip.netmask() print'broadcast is:',ip.broadcast() print'reverses address is:',ip.reverseNames()[0] print'subnet is',len(ip) else: print'reverses address is:',ip.reverseNames()[0] print'version is:',ip.version() print'iptype is:',ip.iptype() print'hexadecimal is:',ip.strHex() print'binary is:',ip.strBin() if __name__=='__main__': main()
[root@lsn-linux ~]# python ip2.py
Please Enter:10.0.0.1
reverses address is: 1.0.0.10.in-addr.arpa.
version is: 4
iptype is: PRIVATE
hexadecimal is: 0xa000001
binary is: 00001010000000000000000000000001
[root@lsn-linux ~]# python ip2.py
Please Enter:10.0.0.0/24
net is: 10.0.0.0
mask is: 255.255.255.0
broadcast is: 10.0.0.255
reverses address is: 0.0.10.in-addr.arpa.
subnet is 256
相关文章推荐
- python自动化学习-实用的iP地址处理模块IPy
- Python学习笔记-IP地址处理模块Ipy
- Python学习笔记-IP地址处理模块Ipy
- Python自动化运维笔记(二):Python中的IP地址处理模块IPy的使用
- Python之实用的IP地址处理模块IPy
- python笔记系列:IP地址处理模块IPy
- Python之实用的IP地址处理模块IPy
- python自动化运维学习笔记1- psutil系统性能信息模块
- Python之实用的IP地址处理模块IPy
- Python自动化运维之IP地址处理模块详解
- python自动化运维学习笔记一 psutil模块
- Python自动化运维笔记(七):XlsxWriter模块实现Excel操作(上)
- Python学习笔记---模块;文件与文本处理
- Python自动化运维笔记(一):系统性能信息模块psutil
- python模块-decimal小数精度处理-学习笔记28
- Python笔记之psutil模块(自动化运维利器psutil玩转系统监控及管理)
- 实用的IP地址处理模块IPy
- 学习python自动化运维笔记文件比较
- Python学习笔记(四十二)第三方模块(PIL)图像处理