使用python獲取網段的ip個數以及位址清單需要用到ipy的庫,而相應的方法主要就是ip。
寫小指令碼如下:
from ipy import ip
ip = ip('192.168.0.0/16')
pr程式設計客棧int(ip.len())
for x in ip:
print(x)
執行結果:
greydemac-mini:01_系統基礎資訊模組詳解 greyzhang$ python ip.py
65536
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7
192.168.0.8
192.168.0.9
192.168.0.10
192.168.0.11
192.168.0.12
1程式設計客棧92.168.0.13
192.168.0.14
192.168.0.15
192.168.0.16
192.168.0.17
……………………
程式設計客棧
192.168.255.241
192.168.255.242
192.168.255.243
192.168.255.244
192.168.255.245
192.168.255.246
192.168.255.247
192.168.255.248
192.168.255.249
192.168.255.250
192.168.255.251
192.168.255.252
192.168.255.253
192.168.255.254
192.168.255.255
從上面的結果中可以看出,這個王端中共有65535個ip,同時指令碼輸出了所有的ip位址清單。至於這個ip位址的含義可以再做一下簡單的解釋。**中的192.168.0.0/16其實是乙個私有位址網段。早起的網路設計中,總是嘗程式設計客棧試給所有的計算機分配乙個固定的位址,但是隨著區域網的發展這個多少有點不必要了。私有的局域內部網路很多時候並不需要保護共有ip。未連線到網際網路上的機器並不需要使用唯一的ip位址,因為它並不在網際網路上路由,也不需要與ip位址登錄檔協調。在rfc 1981中保留了ipv4的三個費重疊位址,具體的位址說明如下:
而**中,用到的便是上面**中的第三個。針對前面兩個的網段ip數目進行獲取如下:
in [67]: ip1 = ip('172.16.0.0/12')
in [68]: ip1.len()
out[68]: 1048576
in [69]: ip2程式設計客棧 = ip('10.0.0.0/8')
in [70]: ip2.len()
out[70]: 16777216
本文位址:
python遍歷IP網段
網路相關的程式中,可能需要遍歷乙個網段的ip,例如 192.168.1.100 192.168.2.200。第一反應會先到先遍歷1.100 1.255,再遍歷2.1 2.200,當然也是可行,本文要介紹的是效率更高的方案。1 ip簡介 目前常用ipv4的ip是32位的二進位制數,例如 0000000...
Python 獲取本地IP
使用撥號上網的話,一般都有乙個本地ip和乙個外網ip,使用python可以很容易的得到這兩個ip 使用gethostbyname和gethostbyname ex兩個函式可以實現 import socket localip socket.gethostbyname socket.gethostnam...
python 獲取本機 IP
這個方法是目前見過最優雅獲取本機伺服器的ip方法了。沒有任何的依賴,也沒有去猜測機器上的網路裝置資訊。而且是利用 udp 協議來實現的,生成乙個udp包,把自己的 ip 放如到 udp 協議頭中,然後從udp包中獲取本機的ip。這個方法並不會真實的向外部發包,所以用抓包工具是看不到的。但是會申請乙個...