在Python中获取错误的本地IP地址

3
我的操作系统是Windows 8.1,我在Vmware中安装了Windows 7和Linux Debian。在Python(2.7)中,当我尝试获取本地IP地址时,它显示了Vmware的IP地址(Win7),而不是Win8.1的IP地址(见图片)!有什么问题吗?
我已将Vmware的网络适配器设置为NAT。

编辑:我使用的代码:socket.gethostbyname(socket.gethostname())

enter image description here


你能把你的代码放到问题里吗?图片中很难看清楚。 - Shahriar
对不起!我使用了 socket.gethostbyname(socket.gethostname()) - HBasiri
我的本地IP地址(192.168.1.2) - HBasiri
1
@TanveerAlam,你在那个问题中的答案是从我发布的链接中直接复制的。 - Padraic Cunningham
@PadraicCunningham,这就是为什么我在SO答案中包含了它,以便与他人分享变得容易。我甚至在我的答案中分享了链接。 - Tanveer Alam
显示剩余8条评论
2个回答

1

try use this

import socket

LocalIP = ''.join(socket.gethostbyname_ex(socket.gethostname())[2])

print(LocalIP)

0
请使用这个。当您的计算机有多个IP地址时,您可以操作[0,1]来选择正确的IP地址。在我的情况下,是第二个IP地址,所以是1,但在您的情况下可能是0。
LocalIP = (socket.gethostbyname_ex(socket.gethostname())[2][1])

socket.gethostbyname_ex(hostname)的文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接