python处理IP和IP段的模块基本有两个:IPy与ipaddrhtml
IPy基本处理8位、16位、24位掩码的网段,其余的网段处理起来就会出现问题。python
ipaddr是google出的一个模块,很好的能够处理模块IPy不能解决这个问题,因此建议使用模块ipaddr!ide
模块地址:http://pythonhosted.org/ipaddr/ oop
使用介绍:google
ipaddr.IPv4Network() ipv4网段对象创建code
ipaddr.IPv6Network() ipv6网段对象创建orm
ipaddr.IPAddress(address, version) 单个ipv4地址对象创建htm
部分对象方法描述:对象
Contains() 网段中是否包含某个IP
is_private 是不是私网地址
is_multicast 是不是广播地址
is_loopback 是不是loop地址
IsLoopback 是不是回环地址
IsMulticast 是不是多播地址
broadcast 查看广播地址
hostmask 查看子网掩码
iterhost 建立一个网段中一个IP地址列表的迭代器对象
is_reserved 是不是保留地址
实例讲解:
#!/usr/bin/python
### 引入模块
import ipaddr
MIP = "192.168.1.0/29"
### 建立一个网段的对象,ipv4的网段地址
ips = ipaddr.IPNetwork(MIP)
### 查看对象ips的类型
print type(ips)
### 查看网段的广播地址
print ipaddr.IPv4Network(MIP).broadcast
### 查看网段地址的掩码
print ipaddr.IPv4Network(MIP).hostmask
### 建立一个网段中一个IP地址列表的迭代器对象
hosts = ipaddr.IPv4Network(MIP).iterhosts()
### 使用循环读取对象中的每一个IP
print type(hosts)
for IP in hosts:
print IP