如何从 linux 上的 python 脚本获取我的本地 IP 地址? [复制]

Posted

技术标签:

【中文标题】如何从 linux 上的 python 脚本获取我的本地 IP 地址? [复制]【英文标题】:How do I get my local ip address from a python script on linux? [duplicate] 【发布时间】:2020-10-07 23:10:58 【问题描述】:

我正在尝试在 Raspberry Pi 上运行 python 服务器,我需要它的本地 IP 地址来连接。我意识到我可以输入 ifconfig 并获取我的 IP 地址,但我真的希望能够从 python 脚本中获取它。我试过socket.gethostbyname(socket.getfqdn()),但这似乎只适用于Windows。当我在树莓派上运行它时,它似乎总是返回127.0.1.1。有谁知道在linux上获取本地IP地址的命令吗?

【问题讨论】:

【参考方案1】:

您可以使用外部包,例如 netifaces,或者您可以查找给定接口的 IP 地址,由其名称指定。看看this question。

【讨论】:

【参考方案2】:

socket.gethostbyname(socket.getfqdn()) 返回127.0.1.1 的原因是因为你在树莓派上的/etc/hosts 中有类似这样的一行

127.0.1.1 <host_name>

尝试将127.0.1.1 更改为您的 pi 的静态 IP 地址,它应该会正确返回。

【讨论】:

以上是关于如何从 linux 上的 python 脚本获取我的本地 IP 地址? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Linux 上的 Python:在 /etc/hostname 中获取主机名

如何将 JSON 对象从 Python 脚本发送到 jQuery?

如何从python中的xmlNode获取xpathContext

如何从脚本的纯色图像中获取十六进制颜色代码?

使用 Python 从设备获取 MAC 地址

如何在使用 cx_Freeze 6.0b1 冻结的 Linux 上修复 python 3.7.3 脚本上的 numpy 依赖项路径?