同一本地网络上两台计算机之间的IP地址差异

同一本地网络上两台计算机之间的IP地址差异

为什么 python 命令print(socket.gethostbyname(socket.gethostname()))给出:

当我的笔记本电脑和 Raspberry PI 在同一个本地网络上时,它们的 IP 地址是 192.168.1.4,而我的 Raspberry PI 上的 IP 地址是 127.0.1.1,并且 PI 的 IP 地址是静态的 192.168.1.61?

请温柔一点,我对网络术语和理解有点不清楚:)

答案1

gethostbyname自从十多年前推出以来,它已经过时了getaddrinfo。然而,它们都不是用来查找软件运行所在主机的 IP 地址的。

为了找到运行软件的主机的 IP 地址,最简单的方法是创建一个 UDP 套接字并将其连接到您想要与之通信的远程地址。

import socket
s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, 0)
s.connect(('2001:db8::', 53))
print s.getsockname()

在具有多个 IP 地址的主机上,这可能会产生不同的结果,具体取决于您在代码中指定的远程地址。

相关内容