Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Python获取我的本地IP地址和网络子网掩码_Python_Networking - Fatal编程技术网

通过Python获取我的本地IP地址和网络子网掩码

通过Python获取我的本地IP地址和网络子网掩码,python,networking,Python,Networking,我想用python代码获取我的本地IP地址以及网络的子网掩码。 我尝试使用以下代码获取IP地址: import socket print socket.gethostbyname(socket.gethostname()) 但我得到的IP>169.254.236.99,这不是我的本地IP地址 也许你能帮我做这件事?谢谢 编辑:我找到了在Linux和Windows上都能工作的IP地址的很好的解决方案 import socket s = socket.socket(socket.AF_INET,

我想用python代码获取我的本地IP地址以及网络的子网掩码。 我尝试使用以下代码获取IP地址:

import socket
print socket.gethostbyname(socket.gethostname())
但我得到的IP>169.254.236.99,这不是我的本地IP地址

也许你能帮我做这件事?谢谢

编辑:我找到了在Linux和Windows上都能工作的IP地址的很好的解决方案

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])

因此,如果您能帮助我使用子网掩码,这将非常有用:)

环回通常不是127.0.0.1 您的本地IP(LAN)为192.168.1.11(wifi)

看看这个:


这是一个可能会进一步帮助你的小东西。:-)

问题是您的计算机有多个网络适配器和多个地址。169位于用于pcap的虚拟接口上。您可以从pip中使用类似于
ifaddr
的东西来列出所有这些问题。您是对的,我找到了解决方案。也许你能帮我弄一下子网掩码?你还需要IP掩码吗?试试这个:但是,你必须知道掩码的位数(通常是无符号32位整数)。这不是我需要的,因为我不知道掩码的位数。。但是谢谢你的评论。对不起,我已经修改了我的评论。IPv4的掩码通常是32位(4字节x 8位)。我已经编辑了我的问题,如果你能看一下,它将非常有用。感谢Linux,这应该可以做到:iface=“eth0”socket.inet_ntoa(fcntl.ioctl(socket.socket(socket.AF_inet,socket.SOCK_DGRAM),35099,struct.pack('256s',iface))[20:24]),那么Windows呢?嗯。。。我建议你看看这个:不是一般的。127.0.0.1始终是测试网络适配器的保留地址。