python笔记系列:IP地址处理模块IPy

IP地址处理模块IPy
wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate
tar -zxvf IPy-0.81.tar.gz
cd IPy-0.81
python setup.py install

IP('10.0.0.0/8').version()
IP('::1').version

from IPy import IP
ip=IP('192.168.1.0/29')
print ip.len()
for x in ip:
print(x) #注意:此处为两个空格,部署tab;也可以接着上行,如:
for x in ip:print(x)

ip=IP('192.168.2.14')
ip.reverseNames() #反解析
ip.iptype()
IP('8.8.8.8').iptype()
IP('8.8.8.8').int() #整型
IP('8.8.8.8').strHex() #十六进制
IP('8.8.8.8').strBin() #二进制
print(IP(0x8080808)) #十六进制转IP格式

print(IP('192.168.1.0').make_net('255.255.255.0'))
print(IP('192.168.1.0/255.255.255.0',make_net=True))
print(IP('192.168.1.0-192.168.1.255',make_net=True))

IP('192.168.1.0/24').strNormal(0) #无返回
IP('192.168.1.0/24').strNormal(1) #prefix格式
IP('192.168.1.0/24').strNormal(2) #decimalnetmask格式
IP('192.168.1.0/24').strNormal(3) #lastIP格式

多网络计算
IP('10.0.0.0/24')
'192.168.1.100' in IP('192.168.1.0/24')
IP('192.168.1.0/24') in IP('192.168.0.0/16')
IP('192.168.0.0/23').overlaps('192.168.1.0/24') #重叠判断 1:重叠,0:不重叠

simple1.py
#!/usr/bin/env python
from IPy import IP
ip_s = raw_input( 'Please input an IP or net-range: ' )
ips = IP(ip_s)
if len(ips) > 1 :
print ( 'net: %s' % ips.net())
print ( 'netmask: %s' % ips.netmask())
print ( 'broadcast: %s' % ips.broadcast())
print ( 'reverse address: %s' % ips.reverseNames()[ 0 ])
print ( 'subnet: %s' % len(ips))
else :
print ( 'reverse address: %s' % ips.reverseNames()[ 0 ])
print ( 'hexadecimal: %s' % ips.strHex())
print ( 'binary ip: %s' % ips.strBin())
print ( 'iptype: %s' % ips.iptype())

查看modules安装情况
$pydoc modules
>>> help("modules")
yolk命令来查看包信
$ pip install yolk #安装yolk
$ yolk -l #列出所有安装模块$ yolk -a #列出激活的模块$ yolk -n #列出非激活模块$ yolk -U [packagename] # 通过查询pypi来查看(该)模块是否有新版本

IP地址处理模块IPy
wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate
tar -zxvf IPy-0.81.tar.gz
cd IPy-0.81
python setup.py install

IP('10.0.0.0/8').version()
IP('::1').version

from IPy import IP
ip=IP('192.168.1.0/29')
print ip.len()
for x in ip:
print(x) #注意:此处为两个空格,部署tab;也可以接着上行,如:
for x in ip:print(x)

ip=IP('192.168.2.14')
ip.reverseNames() #反解析
ip.iptype()
IP('8.8.8.8').iptype()
IP('8.8.8.8').int() #整型
IP('8.8.8.8').strHex() #十六进制
IP('8.8.8.8').strBin() #二进制
print(IP(0x8080808)) #十六进制转IP格式

print(IP('192.168.1.0').make_net('255.255.255.0'))
print(IP('192.168.1.0/255.255.255.0',make_net=True))
print(IP('192.168.1.0-192.168.1.255',make_net=True))

IP('192.168.1.0/24').strNormal(0) #无返回
IP('192.168.1.0/24').strNormal(1) #prefix格式
IP('192.168.1.0/24').strNormal(2) #decimalnetmask格式
IP('192.168.1.0/24').strNormal(3) #lastIP格式

多网络计算
IP('10.0.0.0/24')
'192.168.1.100' in IP('192.168.1.0/24')
IP('192.168.1.0/24') in IP('192.168.0.0/16')
IP('192.168.0.0/23').overlaps('192.168.1.0/24') #重叠判断 1:重叠,0:不重叠

simple1.py
#!/usr/bin/env python
from IPy import IP
ip_s = raw_input( 'Please input an IP or net-range: ' )
ips = IP(ip_s)
if len(ips) > 1 :
print ( 'net: %s' % ips.net())
print ( 'netmask: %s' % ips.netmask())
print ( 'broadcast: %s' % ips.broadcast())
print ( 'reverse address: %s' % ips.reverseNames()[ 0 ])
print ( 'subnet: %s' % len(ips))
else :
print ( 'reverse address: %s' % ips.reverseNames()[ 0 ])
print ( 'hexadecimal: %s' % ips.strHex())
print ( 'binary ip: %s' % ips.strBin())
print ( 'iptype: %s' % ips.iptype())

查看modules安装情况
$pydoc modules
>>> help("modules")
yolk命令来查看包信
$ pip install yolk #安装yolk
$ yolk -l #列出所有安装模块$ yolk -a #列出激活的模块$ yolk -n #列出非激活模块$ yolk -U [packagename] # 通过查询pypi来查看(该)模块是否有新版本

你可能感兴趣的:(Python)