使用import.socket是否能获取DHCP IP?还是要减去1?
根据标题,我想获取我连接的设备的DHCP 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的设备。
我想如果有更高效的写法那当然更好,但我最关心的还是获取DHCP IP地址(DHCP IP地址减去1)。
非常感谢!谢谢!
1 个回答
0
作为一个快速解决办法,我只是把IP的最后一部分减了一。
ip_oct = ip.split('.')
ip_oct[3] = str(int(ip_oct[3]) -1)
return '.'.join(ip_oct)
我知道这不是最优雅的解决方案,但这确实大大减少了数字行数,让我觉得简单多了。
我基本上是把我获取的IP分开,然后对最后一部分减一。接着我用点号把它们连接起来,返回成IP。
顺便说一下,我在使用Google Robot Framework的gethostbyname_ex
时没有成功,所以我不得不使用getaddrinfo
来获取IP。
再说一次,这不是最好的解决办法,因为我想通过MAC地址和ARP来实现,但……我没时间去搞明白这个,几个月后再来处理。