Python 通过使用import.socket,是否有办法取回DHCP ip?还是我必须从IP中减去一?

Python 通过使用import.socket,是否有办法取回DHCP ip?还是我必须从IP中减去一?,python,sockets,dhcp,Python,Sockets,Dhcp,根据标题,我想检索我连接的设备的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.gethostb

根据标题,我想检索我连接的设备的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的单元

我想如果有一种更有效的方法来写这篇文章也会很好,但我主要关心的是检索IP的DHCP IP(其中DHCP IP为负1)


这将是非常感谢!谢谢

作为一个快速修复,我只是用IP的最后一部分减去一

ip_oct = ip.split('.')
ip_oct[3] = str(int(ip_oct[3]) -1)
return '.'.join(ip_oct)
我相信这不是最优雅的解决方案,但这大大降低了数字线,并简化了它

我基本上是在分割我检索到的IP。最后一组,我减去一。然后我把他们和我的朋友联系起来。返回IP

只是想把它扔出去,我没有运气通过Google Robot框架使用Get
gethostbyname\u ex
来工作,所以我不得不使用getaddrinfo来检索IP


同样,这不是我希望通过MAC地址和ARP实现的最佳解决方案,但是。。。我没有时间去弄清楚,几个月后我会回来的

有什么方法可以让你得到你试图连接到的机器的MAC地址的IP地址吗?是的,虽然我还没有研究过如何使用套接字导入和DHCP这对你来说应该是一个更可靠的解决方案。是的。但我不会为你做的;)这将帮助您查询arp表。arp表保存您需要的信息。