转:python——IPy库
生活随笔
收集整理的這篇文章主要介紹了
转:python——IPy库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python——IPy庫 (2011-03-09 15:29) 分類: python Website: https://github.com/haypo/python-ipy/ 安裝: easy_install IPy >>> from IPy import IP >>> dir(IP) ? ? ? ? ? ? ? ? ? ?? ['__add__', '__cmp__', '__contains__', '__doc__', '__eq__', '__getitem__', '__hash__', '__init__', '__len__', '__lt__', '__module__', '__nonzero__', '__repr__', '__str__', '_getIPv4Map', '_printPrefix', 'broadcast', 'int', 'iptype', 'len', 'make_net', 'net', 'netmask', 'overlaps', 'prefixlen', 'reverseName', 'reverseNames', 'strBin', 'strCompressed', 'strDec', 'strFullsize', 'strHex', 'strNetmask', 'strNormal', 'version'] >>> IP('172.29.20.80/28').len() ?—— IP數量 16 >>> IP('172.29.20.80/28').net() ?—— 網段 ?? IP('172.29.20.80') >>> IP('172.29.20.80/28').netmask() —— 掩碼 IP('255.255.255.240') >>> IP('172.29.20.0/24').prefixlen() —— 掩碼,INT型 24 >>> IP('172.29.20.0/24').strNormal(0)?——?網段 '172.29.20.0' >>> IP('172.29.20.0/24').strNormal(1)?——?網段 + 掩碼 '172.29.20.0/24' >>> IP('172.29.20.0/24').strNormal(2)?——?網段 + 掩碼 '172.29.20.0/255.255.255.0' >>> IP('172.29.20.0/24').strNormal(3)?——?網段 + 掩碼 '172.29.20.0-172.29.20.255' >>> IP('172.29.20.0/24').strNetmask()?—— 掩碼 '255.255.255.0' >>> IP('172.29.20.80/28').strNetmask()?—— 掩碼 '255.255.255.240' >>> IP('172.29.20.0/24').version() —— IP v4 or v6版本號 4 >>> '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 >>> print(IP('192.168.1.1').iptype()) PRIVATE >>> print(IP('152.168.1.1').iptype())? PUBLIC >>> help(IP) —— 可以看到最詳細的文檔,更多的方法 >>> ip=IP('127.0.0.0/30') >>> for i in ip: ... ? ? print(i) ...? 127.0.0.0 127.0.0.1 127.0.0.2 127.0.0.3 >>> for i in ip: ... ? ? print(type(i)) ...? <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 IP?
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
轉載于:https://www.cnblogs.com/babykick/archive/2011/11/08/2241412.html
總結
以上是生活随笔為你收集整理的转:python——IPy库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下oracle自启动
- 下一篇: 无线通信协议小感