首页 > 解决方案 > 获取 127.0.1.1 而不是 192.168.1.* ip ubuntu python

问题描述

我是 python 新手。我想获取系统的IP地址。我连接在局域网中。当我使用下面的代码获取 ip 时,它显示 127.0.1.1 而不是 192.168.1.32。为什么它不显示 LAN ip。那我怎样才能得到我的局域网IP。每个教程都仅以这种方式显示。我还通过连接移动热点进行了检查。尽管,它显示相同。

import socket    
hostname = socket.gethostname()    
IPAddr = socket.gethostbyname(hostname)    
print("Your Computer Name is:" + hostname)    
print("Your Computer IP Address is:" + IPAddr)    

输出:

Your Computer Name is:smackcoders
Your Computer IP Address is:127.0.1.1

所需输出:

Your Computer Name is:smackcoders
Your Computer IP Address is:192.168.1.32

标签: pythonpython-3.xsocketspython-sockets

解决方案


我的raspi遇到了同样的问题。

host_name = socket.gethostname()`
host_addr = socket.gethostbyname(host_name)

现在如果我打印 host_addr,它将打印 127.0.1.1。所以我发现了这个:https ://www.raspberrypi.org/forums/viewtopic.php?t=188615#p1187999

host_addr = socket.gethostbyname(host_name + ".local")

它奏效了。


推荐阅读