正好我也请教下大家

g
guvest
楼主 (未名空间)

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
TeacherWei

你机器上的操作系统,知道自己的IP,不是很正常么?

你创建一个Socket,他当然要绑定本地IP了。然后你问它绑定的是啥IP?它就告诉你呗。

至于为啥设置Broadcast,就是确保绑定的是网卡。

最后提醒你,这段代码可能返回127.0.0.1,你可以把WiFi关闭网线拔了试试。