Python自动化运维——IP地址处理模块

Posted Infi_chu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python自动化运维——IP地址处理模块相关的知识,希望对你有一定的参考价值。

Infi-chu:

http://www.cnblogs.com/Infi-chu/

 

模块:IPy

功能:辅助我们高效的完成IP的规划工作

安装:

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地址、网段的基本处理:

使用方法:

#from IPy import IP

#ip_1 = IP(\'192.168.1.0/24\')

#print(ip_1.len()) # 输出192.168.1.0/24网段的IP个数

#for a in ip_1:

# print(a) # 输出192.168.1.0/24网段的所有IP清单

IP地址的转化:

#from IPy import IP

#ip_2 = IP(\'192.168.1.1\')

#ip_2.reverseNames() # 反响解析地址格式

#ip_2.iptype() # 查看IP地址类型

#ip_2.int() # 将格式转换为整型格式

#ip_2.strHex() # 将格式转换为16进制格式

#ip_2.strBin() # 将格式转换为2进制格式

#print(IP(0x8188808)) # 将16进制转化为IP格式

IP网段的转化:

#from IPy import IP

# 输出192.168.1.0/24

#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))

# 通过strNormal() 方法指定上述三种格式的输出:

#print(IP(\'192.168.1.0/24\').strNormal(0)) # 参数(wantprefixlen)为0,无返回,输出192.168.1.0

#print(IP(\'192.168.1.0/24\').strNormal(1)) # 参数(wantprefixlen)为1,prefix格式,输出192.168.1.0/24

#print(IP(\'192.168.1.0/24\').strNormal(2)) # 参数(wantprefixlen)为2,decimalnetmask格式,输出192.168.1.0/255.255.255.0

#print(IP(\'192.168.1.0/24\').strNormal(3)) # 参数(wantprefixlen)为3,lastIP格式,输出192.168.1.0-192.168.1.255

多网络计算方法:

功能:比较两个网段是否存在包含、重叠等关系,比如192.168.1.0/24 和192.168.1.0/25;192.168.0.0/24 和192.168.1.0/24

使用方法:

#from IPy import IP

#IP(\'192.168.0.0/24\')<IP(\'192.168.1.0/24\')

# 判断IP地址和网段是否包含于另一个网段中

#\'192.168.1.1\' in IP(\'192.168.1.0/24\')

# 判断两个网段是否存在重叠,使用overlaps()方法

#IP(\'192.168.0.0/23\').overlaps(\'192.168.1.0/24\') # 返回1,表示重叠

#IP(\'192.168.1.0/24\').overlaps(\'192.168.2.0/24\') # 返回0,表示没有重叠

根据输入的IP地址或网段地址,返回网络地址、广播地址、地址反响解析、子网数、IP类型等信息:

#from IPy import IP

#ip_inp=raw_input(\'输入IP地址或网段地址\')

#ip=IP(ip_inp)

#if len(ip)>1: # 是一个网段

# print(\'网络地址是:%s\' %ip.net())

# print(\'子网掩码是:%s\' %ip.netmask())

# print(\'广播地址是:%s\' %ip.broadcast())

# print(\'地址反向解析:%s\' %ip.reverseName()[0])

# print(\'网络子网数为:%s\' %sip.len())

#else: # 是一个IP地址

# print(\'IP地址反向解析:%s\' %ip.reverseName()[0])

#

#print(\'16进制地址:%s\' %ip.strHex())

#print(\'2进制地址:%s\' %ip.strBin())

#print(\'IP地址类型:%s\' %ip.iptype())

 

以上是关于Python自动化运维——IP地址处理模块的主要内容,如果未能解决你的问题,请参考以下文章

Python自动化运维

运维自动化之IPy模块

python自动化运维学习记录2

Python 自动化运维 IPy

Python自动化运维——DNS处理模块

python之IP地址或IP段处理模块-ipaddr