不使用外部库获取以太网适配器 IPv4 地址
Get Ethernet adapter IPv4 address without using external libraries
我有两台电脑用交叉线连接,第一次需要启动PC1作为服务器,PC2作为客户端,然后第二次启动PC2作为服务器,PC1作为客户端。我使用 UDP 套接字,它在 Windows 上。所以我不能只把IP放在代码中,我需要服务器代码来自动获取IP。
我试过这个:
hostname = socket.gethostname()
IPAddr = socket.gethostbyname(hostname)
但这给了我错误的 IP。我需要在 ipconfig/all 中检查以太网适配器以太网时看到的 IP 地址。
抱歉,我不确定你是否理解我的意思。英语不是我的强项。
您可以尝试使用 netifaces
包。文档是 here.
import netifaces
ip = netifaces.ifaddresses('eth0')[netifaces.AF_INET][0]['addr']
print(ip)
eth0
只是一个示例,您可以从ipconfig
中获取实际的接口名称
我有两台电脑用交叉线连接,第一次需要启动PC1作为服务器,PC2作为客户端,然后第二次启动PC2作为服务器,PC1作为客户端。我使用 UDP 套接字,它在 Windows 上。所以我不能只把IP放在代码中,我需要服务器代码来自动获取IP。
我试过这个:
hostname = socket.gethostname()
IPAddr = socket.gethostbyname(hostname)
但这给了我错误的 IP。我需要在 ipconfig/all 中检查以太网适配器以太网时看到的 IP 地址。
抱歉,我不确定你是否理解我的意思。英语不是我的强项。
您可以尝试使用 netifaces
包。文档是 here.
import netifaces
ip = netifaces.ifaddresses('eth0')[netifaces.AF_INET][0]['addr']
print(ip)
eth0
只是一个示例,您可以从ipconfig