所以我使用socket将客户端连接到服务器。为此,我需要计算机的IP。目前,我找到的最好的方法是:
stringdist::phonetic
然后我使用请求告诉我的客户我的ip,他们连接。这里的问题是,当我的vpn打开时,我得到另一台主机,导致客户端无法连接。 但是当我打开命令提示符并输入ipconfig时,无论vpn状态如何,我都会得到正确的ip。所以我需要获得与在命令提示符下的IPv4下显示的相同的ip,这在python中是否可能?
我试图让服务器在任何设备上运行,不管这种情况如何。
谢谢!
答案 0 :(得分:0)
检索系统IP地址的方式(目前大多数系统都有多个)使用系统的主机名,因此取决于DNS和本地主机文件。它只会给你一个地址,并且可能非常不可靠,正如你在VPN上看到的那样。
我建议使用netifaces
包。有了它,您可以检索所有网络接口及其所有地址的列表。
手册中的一个例子:
>>> addrs = netifaces.ifaddresses('en0')
>>> addrs[netifaces.AF_INET]
[{'broadcast': '10.15.255.255', 'netmask': '255.240.0.0', 'addr': '10.0.1.4'}, {'broadcast': '192.168.0.255', 'addr': '192.168.0.47'}]
你应该能够用pip安装它。源存储库位于:https://bitbucket.org/al45tair/netifaces