python自动化学习-实用的iP地址处理模块IPy

来源:互联网 发布:语音通话交友软件 编辑:程序博客网 时间:2024/05/21 22:46
实用的iP地址处理模块IPy


1、下载安装
wget https://pypi.python.org/packages/88/28/79162bfc351a3f1ab44d663ab3f03fb495806fdb592170990a1568ffbf63/IPy-0.83.tar.gz
mv IPy-0.83.tar.gz /soft/
cd /soft/
tar -zxvf IPy-0.83.tar.gz 
cd IPy-0.83/
python setup.py install


running install
running build
running build_py
creating build
creating build/lib
copying IPy.py -> build/lib
running install_lib
copying build/lib/IPy.py -> /usr/lib/python2.7/site-packages
byte-compiling /usr/lib/python2.7/site-packages/IPy.py to IPy.pyc
running install_egg_info
Writing /usr/lib/python2.7/site-packages/IPy-0.83-py2.7.egg-info


2、ip地址、网段的基本处理
通过version方法区分ipv4和ipv6
>>> from IPy import IP
>>> IP('10.0.0.0/8').version()
4
>>> IP('::1').version()
6


3、输出ip个数和ip地址清单
[root@python py]# vi iplist.py
#!/usr/bin/env python
from IPy import IP
ip = IP('192.168.0.0/16')
print ip.len()
for x in ip:
    print(x)
[root@python py]# chmod 777 iplist.py 


[root@python py]# ./iplist.py |wc -l
65537


[root@python py]# ./iplist.py |more
65536
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
。。。。


IP类常见用法
>>> ip = IP('192.168.3.40')
>>> ip.reverseNames()                           (反向解析地址格式)
['40.3.168.192.in-addr.arpa.']
>>> ip.iptype()                                          (192.168.3.40为私网地址)
>>> IP('8.8.8.8').iptype()                         (8.8.8.8为公网类型)  
'PUBLIC
>>> IP('8.8.8.8').int()                                (转换为整型格式)
134744072
>>> IP('8.8.8.8').strHex()                         (转换为16进制)
'0x8080808'
>>> IP('8.8.8.8').strBin()                          (转换为二进制)
'00001000000010000000100000001000'
>>> print(IP(0*8080808))                      (十六进制转换成ip格式)
0.0.0.0


IPy支持网络地址转换
>>> print(IP('192.168.3.0').make_net('255.255.255.0'))
192.168.3.0/24
>>> print(IP('192.168.3.0/255.255.255.0',make_net=True))
192.168.3.0/24
>>> print(IP('192.168.3.0-192.168.3.255',make_net=True))
192.168.3.0/24


也可以使用strNormal方法指定不同的wantprefixlen参数值来制定不同的输出类型的网段
>>> IP('192.168.3.0').strNormal(0)
'192.168.3.0'
>>> IP('192.168.3.0/24').strNormal(1)
'192.168.3.0/24'
>>> IP('192.168.3.0/24').strNormal(2)
'192.168.3.0/255.255.255.0'
>>> IP('192.168.3.0/24').strNormal(3)
'192.168.3.0-192.168.3.255'
0 0
原创粉丝点击