website :https://github.com/hay po/python-ipy /安装: easy _ installipyfromipyimportipdir [ ' _ _ add _ ',' _ ' __len__ ',' ___lt} '_printPrefix ',' broadcast ',' int ',' iptype ',' len ',' make_net,' ' strHex ',' strNetmask ',' strNormal ', “版本”IP (172.29.20.80/28 ) (.len ) ) 3—— IP数量16IP ) (172.29.20.80/28 ) (.net ) ) 3354网段24 ).prefixlen ) ) ——掩码,INT型24IP(172.29.20.0/24 ).strnormal )0) 3——网段) 172.29.20.0 ) 24 ) ).str .strnormal(2) ——网段悲伤BMW 172.29.20.0/255.255.255.0 ' IP (' 172.29.20.0/24 ' ) strnormal ) )3) 3354 .strNetmask(3354掩码) 255.255.255.255.0 ) IP ) 172.29.20.80/28 ).strnetmask ) ——掩码) 255.255.255.255 —— IP v4 or V6版本号4 ' 127.0.0.1 ' inip (' 127.0.0.0.0/24 ' ) trueIP 私有打印(IP (152.168.1.1 ) ).iptype ) )公共帮助(IP ) ——可以查看最详细的文档。 更多方法IP=IP(127.0.0.0/30 ) for i in ip: print(i ) I ) . 127.0.0.0127.0.0.1127.0.0.0.0 . <type 'instance'> <type 'instance'> <type 'instance'> <type 'instance'> >>> print(ip) 127.0.0.0/30 >>> for i in ip: ... print(str(i)) ... 127.0.0.0 127.0.0.1 127.0.0.2 127.0.0.3 >>> print(ip[2]) 127.0.0.2 >>> print(str(ip[2])) 127.0.0.2 其他常用方法介绍: | __cmp__(self, other) —— 比较大小 | Called by comparison operations. | | Should return a negative integer if self < other, zero if self | == other, a positive integer if self > other. | | Networks with different prefixlen are considered non-equal. | Networks with the same prefixlen and differing addresses are | considered non equal but are compared by their base address | integer value to aid sorting of IP objects. | | The version of Objects is not put into consideration. | | >>> IP('10.0.0.0/24') > IP('10.0.0.0') | 1 | >>> IP('10.0.0.0/24') < IP('10.0.0.0') | 0 | >>> IP('10.0.0.0/24') < IP('12.0.0.0/24') | 1 | >>> IP('10.0.0.0/24') > IP('12.0.0.0/24') | 0 | __contains__(self, item) —— 检查包含关系 | Called to implement membership test operators. | | Should return true if item is in self, false otherwise. Item | can be other IP-objects, strings or ints. | | >>> IP('195.185.1.1').strHex() | '0xc3b90101' | >>> 0xC3B90101 in IP('195.185.1.0/24') | True | >>> '127.0.0.1' in IP('127.0.0.0/24') | True | >>> IP('127.0.0.0/24') in IP('127.0.0.0/25') | False | overlaps(self, item) —— 检查是否重叠 | Check if two IP address ranges overlap. | | Returns 0 if the two ranges don't overlap, 1 if the given | range overlaps at the end and -1 if it does at the beginning. | | >>> IP('192.168.0.0/23').overlaps('192.168.1.0/24') | 1 | >>> IP('192.168.0.0/23').overlaps('192.168.1.255') | 1 | >>> IP('192.168.0.0/23').overlaps('192.168.2.0') | 0 | >>> IP('192.168.1.0/24').overlaps('192.168.0.0/23') | -1
根据ip地址和子网掩码计算网段地址和广播地址(原创) Python里有一个专门处理该类问题的IP类库,来看看:
view sourceprint?01 #! /usr/bin/env python 02
03 import sys
04 from IPy import 娇气的玫瑰/p>
05
06 address = sys.argv[1]
07 netmask = sys.argv[2]
08
09 #print address,netmask
10
11 #help(IP)
12 networkAddress = IP(address).make_net(netmask) # init a IP instance, can with netmask directly, or use make_net(netmask)
13 bcastAddress = IP(networkAddress).broadcast() # return the broadcast ip address
14
15 print networkAddress
16 print bcastAddress