2012-01-03 56 views
0

給定範圍xxx.xxx.xxx。(195-223) 將它寫入xxx.xxx.xxx.196/29是否正確,並通過執行Python IP檢查

來檢查IP是否在給定網絡中
from ipaddr import IP, CIDR 
#if IP('xxx.xxx.xxx.xxx') in IP('xxx.xxx.xxx.196/29') or 
#if IP('xxx.xxx.xxx.xxx') in CIDR('xxx.xxx.xxx.196/29') 
+0

你測試了嗎? – gecco 2012-01-03 07:03:48

回答

2

我沒有在ipaddr中看到IP,只看到IPAddress。 可能是這樣的嗎?

from ipaddr import IPAdddress, IPNetwork 

if IPAddress('10.0.0.195') in IPNetwork('10.0.0.196/29'): 
    pass 
+0

我試圖尋找ipaddr doc http://packages.python.org/ipaddr/似乎無法找到IPAddress/IPNetwork的用法,或者它是錯誤的我正在看什麼.. – user1076881 2012-01-04 03:20:14

+0

也許這是簡介http://code.google.com/p/ipaddr-py/wiki/Using3144 – user1076881 2012-01-04 03:24:02

+0

我只使用easy_install ipaddr並尋找幫助(ipaddr)。 – 2012-01-04 07:58:06

1

我沒有用過ipaddr模塊,但要注意/ 29意味着你的網絡掩碼爲255.255.255.248,並且你只有最新的3位,以解決2^3 = 8個不同的主機網絡範圍從xxx.xxx.xxx.248到xxx.xxx.xxx.255。這超出了你想檢查的範圍。

欲瞭解更多信息,請看看subnetwork維基百科頁面。