Python获取内网IP

Posted lianshuiwuyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python获取内网IP相关的知识,希望对你有一定的参考价值。

Python 获取本机内网IP

本文记录使用Python获取本机IP的两种方法。

通过hostname来获取本机IP

import socket

print(socket.gethostbyname(socket.gethostname()))

此方法是先获取hostname,然后在通过hostname来查看本机的IP。不推荐此方法,因为若是在/etc/hosts中将hostnam设置为127.0.0.1,那么获取到的就是127.0.0.1,而非本机的真实IP。

通过UDP获取本机IP

import socket

try: 
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 
    s.connect(('8.8.8.8',80)) 
    ip = s.getsockname()[0] 
finally: 
    s.close() 
print(ip)  

此方法利用UDP协议,生成一个UDP包,将自己的IP放入UDP协议头中,然后再从中获取本机的IP。此方法虽然不会真实向外发包,但仍然会申请一个UDP的端口,所以如果频繁调用的话也是比较耗时的;可以将查询到的IP缓存在别处以供使用。

以上是关于Python获取内网IP的主要内容,如果未能解决你的问题,请参考以下文章

怎么实现c#获取ip内网,外网地址?

java获取登录内网ip地址

java获取登录内网ip地址

java获取登录内网ip地址

java获取登录内网ip地址

Vue实战041:获取当前客户端IP地址详解(内网和外网)