标签:python 两种 内网 import 发包 自己的 通过 两种方法 端口
本文记录使用Python获取本机IP的两种方法。
import socket
print(socket.gethostbyname(socket.gethostname()))
此方法是先获取hostname,然后在通过hostname来查看本机的IP。不推荐此方法,因为若是在/etc/hosts
中将hostnam设置为127.0.0.1
,那么获取到的就是127.0.0.1
,而非本机的真实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 两种 内网 import 发包 自己的 通过 两种方法 端口
原文地址:https://www.cnblogs.com/lianshuiwuyi/p/11636876.html