gpt4 book ai didi

linux - 无需使用外部包即可获取所有网卡的IP地址

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:57 25 4
gpt4 key购买 nike

我想列出连接到我的机器的所有网卡的 IP 地址(不使用任何外部软件包)

import socket
print socket.gethostbyname_ex(socket.gethostname())[2]

此代码在 Windows 上运行良好,但在我的 Linux 计算机上它输出 127.0.1.1

如何更改上述代码以使其在 Linux 上运行?

<小时/>

/etc/hostname的内容是

machine-name

/etc/hosts的内容是

127.0.0.1 localhost 
127.0.1.1 machine-name

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

最佳答案

我认为您的问题是 /etc/hosts 的内容,这是 socket 用于将主机名与 IP 地址匹配的内容。

如果将 /etc/hosts 更改为以下内容,您应该会在列表中看到 127.0.0.1127.0.1.1:

127.0.0.1 localhost machine-name
127.0.1.1 machine-name

# And of course your IPv6 settings below...

任何不在该文件中的 IP 地址都不会出现在 socket.gethostbyname_ex() 的结果中。

关于linux - 无需使用外部包即可获取所有网卡的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com