2012-02-07 15 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,但...最佳解决方案,我没有时间去弄明白,并会尽快给它几个月

相关问题