2012-02-07 14 views
1

根據標題,我想檢索我連接的設備的DHCP IP。通過使用import.socket,有沒有辦法檢索DHCP IP?還是必須從IP中減去一個?

到目前爲止,我有:

import socket 

def getIPAddresses(): 
    addr = socket.gethostbyname_ex(socket.gethostname()) 
    for i in addr[2]: 
     if "169.254" in i: 
      if i != "169.254.0.2": 
       print socket.gethostbyaddr(i) 

if __name__ == "__main__": 
    getIPAddresses() 

本質上來說,情形是,我有連接的兩個單位,我想連接到其IP是169.254.0.1不是單位。

我想這也將是不錯,如果有寫這更有效的方式,但我主要關注的將是獲取IP的DHCP IP,而不是(其中DHCP IP溫度爲零下1)

這會非常感謝!謝謝!

+0

是有你可以通過什麼方式獲得你試圖連接的機器的MAC地址的IP地址? – 2012-02-07 21:10:54

+0

是的,雖然我沒有看過如何使用套接字導入 – kptkev 2012-02-07 21:25:00

+0

與DHCP這應該是一個更可靠的解決方案。 – 2012-02-07 21:28:24

回答

0

作爲一個快速解決方案,我只是減去IP的最後一部分。

ip_oct = ip.split('.') 
ip_oct[3] = str(int(ip_oct[3]) -1) 
return '.'.join(ip_oct) 

我敢肯定它不是最完美的解決方案,但由此帶來的行數大幅下降,並使其簡單化IMO

我基本上分裂檢索到IP。然後用最後一組,我減去一個。然後我加入他們。返回到IP。

就折騰它在那裏,我不得不使用越來越gethostbyname_ex通過谷歌機器人框架的工作,所以我不得不使用getaddrinfo檢索IP沒有運氣。

同樣,不是因爲我想做到這一點通過MAC地址和ARP,但...最佳解決方案,我沒有時間去弄明白,並會盡快給它幾個月

相關問題