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

How do I get my local ip address from a python script on linux?

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

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

之所以 socket.gethostbyname(socket.getfqdn()) returns 127.0.1.1 是因为你的 raspberry pi[=15= 上的 /etc/hosts 中有与此类似的行]

127.0.1.1 <host_name>

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