python遍歷IP網段

2021-09-26 02:13:00 字數 1882 閱讀 7330

網路相關的程式中,可能需要遍歷乙個網段的ip,例如:192.168.1.100 -192.168.2.200。第一反應會先到先遍歷1.100 - 1.255,再遍歷2.1-2.200,當然也是可行,本文要介紹的是效率更高的方案。

1、ip簡介

目前常用ipv4的ip是32位的二進位制數,例如:00000001.00000001.00000001.00000001,而使用者直接使用二進位制數顯然是過於複雜,於是程式中通常使用10機制數或16機制數來操作。

2、那麼就可以把ip位址進行轉換:ip>二進位制數》整數。

def

ip2int

(ip)

: lis = ip.split(

'.')

return

int(

"%02x%02x%02x%02x"%(

int(lis[0]

),int(lis[1]

),int(lis[2]

),int(lis[3]

)),16

)"""

0.0.0.1 => 1

255.255.255.255 => 4294967295

192.168.1.100 => 3232235876

192.168.2.200 => 3232236232

192.168.1.255 => 3232236031

192.168.2.0 => 3232236032

"""

因此遍歷192.168.1.100 -192.168.2.200網段,就只要遍歷3232235876 - 3232236232,操作更為便利。

def

ip2int

(ip)

: lis = ip.split(

'.')

return

int(

"%02x%02x%02x%02x"%(

int(lis[0]

),int(lis[1]

),int(lis[2]

),int(lis[3]

)),16

)def

int2ip

(num)

: hexip =

str(

'%08x'

% num)

return

str(

"%i.%i.%i.%i"%(

int(hexip[0:

2],16

),int(hexip[2:

4],16

),int(hexip[4:

6],16

),int(hexip[6:

8],16

)))def

ip2hex

(ip)

: lis = ip.split(

'.')

return

str(

"%02x%02x%02x%02x"%(

int(lis[0]

),int(lis[1]

),int(lis[2]

),int(lis[3]

)))if __name__ ==

'__main__'

:# 遍歷網段所有的ip

res =

[int2ip(x)

for x in

range

(ip2int(

"192.168.1.100"

),ip2int(

"192.168.2.200")+

1)]for i in res:

print

(i)

ip網段變更

公司網路跟集團靠攏,先走第一步 ip網段變更。從xx網段切換到oo網段 1 準備工作 a 保證ipmi連線正常 b 獲得新ip並核對對應主機名 舊ip是否相符 2 確認網絡卡名稱 找到目前配置舊業務ip的活動網絡卡,如eth0,以各機器實際使用網絡卡為準,本文以eth0為例 ifconfig 3 修...

私有IP位址網段

根據用途和安全性級別的不同,ip位址可以大致分為兩類 公共位址和私有位址。公用位址在internet中使用,可以在internet中隨意訪問。私有位址只能在內部網路中使用,只有通過 伺服器才能與internet通訊。10.0.0.0 8 10.0.0.0 10.255.255.255 172.16....

python python掃瞄網段IP

首先知道自己的ip,然後構造這個網段內的ip,使用list來構建。使用前需要注意2.7中對dict和list的處理。list是沒有keys的 需要注意對ip的split操作來判斷,split後來判斷輸入的ip範圍,可以用掩碼的形式來進行範圍確認。傳入引數的處理,這個還不完善,需要對輸入的ip段和埠段...