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