千家信息网

Python中如何使用自带socket库获取本机IP地址

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下Python中如何使用自带socket库获取本机IP地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使
千家信息网最后更新 2025年01月23日Python中如何使用自带socket库获取本机IP地址

小编给大家分享一下Python中如何使用自带socket库获取本机IP地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

使用自带socket库

获取的是局域网IP。

import socket# 函数 gethostname() 返回当前正在执行 Python 的系统主机名res = socket.gethostbyname(socket.gethostname())print(res)

但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的IP),不建议使用。

如果计算机设备有连接到 Internet 的路由,可以使用:

import sockets = 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 socketdef 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 IPprint(extract_ip())

注意:如果本身局域网IP就是公网IP的话,那这个获得的,可以认为是公网IP了。

以上是"Python中如何使用自带socket库获取本机IP地址"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0