码迷,mamicode.com
首页 > 编程语言 > 详细

Python获取内网IP

时间:2019-10-08 19:10:45      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:python   两种   内网   import   发包   自己的   通过   两种方法   端口   

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

标签:python   两种   内网   import   发包   自己的   通过   两种方法   端口   

原文地址:https://www.cnblogs.com/lianshuiwuyi/p/11636876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!