日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

转:python——IPy库

發(fā)布時間:2025/7/14 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:python——IPy库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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數(shù)量 16 >>> IP('172.29.20.80/28').net() ?—— 網(wǎng)段 ?? 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)?——?網(wǎng)段 '172.29.20.0' >>> IP('172.29.20.0/24').strNormal(1)?——?網(wǎng)段 + 掩碼 '172.29.20.0/24' >>> IP('172.29.20.0/24').strNormal(2)?——?網(wǎng)段 + 掩碼 '172.29.20.0/255.255.255.0' >>> IP('172.29.20.0/24').strNormal(3)?——?網(wǎng)段 + 掩碼 '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) —— 可以看到最詳細(xì)的文檔,更多的方法 >>> 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) —— 檢查包含關(guān)系 | ? ? ?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

根據(jù)ip地址和子網(wǎng)掩碼計算網(wǎng)段地址和廣播地址(原創(chuàng)) 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

轉(zhuǎn)載于:https://www.cnblogs.com/babykick/archive/2011/11/08/2241412.html

總結(jié)

以上是生活随笔為你收集整理的转:python——IPy库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。