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

IPy基本处理8位、16位、24位掩码的网段,其他的网段处理起来就会出现问题。

ipaddr是google出的一个模块,很好的可以处理模块IPy不能解决这个问题,所以建议使用模块ipaddr 

IPy模块地址:https://pypi.python.org/pypi/IPy/
ipaddr模块地址:https://pypi.python.org/pypi/ipaddr

使用介绍:

Class总共分为:BaseIP、IPv4、IPv6

ipaddr.IPv4Network()    ipv4网段对象建立

ipaddr.IPv6Network()    ipv6网段对象建立

ipaddr.IPAddress(address, version)    单个ipv4地址对象建立


部分对象方法描述:

Contains()     网段中是否包含某个IPis_private     是否是私网地址is_multicast   是否是广播地址is_loopback    是否是loop地址IsLoopback     是否是回环地址IsMulticast    是否是多播地址broadcast      查看广播地址hostmask       查看子网掩码iterhost       创建一个网段中一个IP地址列表的迭代器对象is_reserved    是否是保留地址


实例讲解:

#!/usr/bin/python
# coding: utf-8

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

原创文章,作者:Tina,如若转载,请注明出处:https://python.01314.cn/201804487.html