重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下Python中如何使用自带socket库获取本机IP地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了冷水江免费建站欢迎大家使用!
获取的是局域网IP。
import socket # 函数 gethostname() 返回当前正在执行 Python 的系统主机名 res = socket.gethostbyname(socket.gethostname()) print(res)
但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的IP),不建议使用。
如果计算机设备有连接到 Internet 的路由,可以使用:
import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) print(s.getsockname()[0])
这个获得的是局域网IP:
可以ipconfig看一下:
另一个适用于所有接口。它还适用于所有公共、私有、外部 IP。这种方法在 Linux、Windows 和 OSX 上很有效。
import socket def extract_ip(): st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: st.connect(('10.255.255.255', 1)) IP = st.getsockname()[0] except Exception: IP = '127.0.0.1' finally: st.close() return IP print(extract_ip())
注意:如果本身局域网IP就是公网IP的话,那这个获得的,可以认为是公网IP了。
以上是“Python中如何使用自带socket库获取本机IP地址”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!