g****t 发帖数: 31659 | 1 stackoverflow上的这个找ip的代码,是什么原理?
broadcast是干啥的?
我一直用这个(还有connect 8.8.8.8),没发现过问题。
https://stackoverflow.com/questions/166506/finding-local-ip-addresses-using-pythons-stdlib
import socket
def getNetworkIp():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.connect(('', 0))
return s.getsockname()[0]
print (getNetworkIp()) | T********i 发帖数: 2416 | 2 你机器上的操作系统,知道自己的IP,不是很正常么?
你创建一个Socket,他当然要绑定本地IP了。然后你问它绑定的是啥IP?它就告诉你呗。
至于为啥设置Broadcast,就是确保绑定的是网卡。
最后提醒你,这段代码可能返回127.0.0.1,你可以把WiFi关闭网线拔了试试。 |
|