python - 获取 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
解决方案
我的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")
它奏效了。
推荐阅读
- fullcalendar - 当用户更改月视图时尝试获取当前月/年
- flask - 如何更新 Flask Sqlalchemy 中的外键值?
- r - 如何在 R 中使用来自多个变量的多条线制作折线图
- shell - 如何在 nginx 后面测试代理的 websocket?
- javascript - 如何跳转到页面顶部 [] 当 javascript int++ 达到选定值时?
- excel - Laravel excel下载没有列标题的数据
- sql - SQL Server 在大表上按日期过滤需要太长时间
- lit-element - 在 lit-element 中重用组件
- arrays - 如何删除置换矩阵中的反向行?
- karate - 如何在空手道中为肥皂请求设置请求正文参数