import socket
def get_local_ip():
# 创建一个UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# 连接到一个公共的IP地址和端口(不会发送数据)
sock.connect(("8.8.8.8", 80))
# 获取本地IP地址
local_ip = sock.getsockname()[0]
return local_ip
except Exception as e:
print(f"获取IP地址时出错: {e}")
return None
finally:
# 关闭套接字
sock.close()
# 调用函数并打印结果
local_ip = get_local_ip()
if local_ip:
print(f"本机IP地址是: {local_ip}")
else:
print("无法获取本机IP地址")
socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 创建一个UDP套接字。sock.connect(("8.8.8.8", 80)) 连接到一个公共的IP地址(如Google的DNS服务器8.8.8.8),这一步不会实际发送数据,只是为了获取本机的IP地址。sock.getsockname()[0] 获取本机的IP地址。finally 块中确保套接字被关闭,避免资源泄漏。这段代码可以获取本机的IPv4地址。
上一篇:python group()函数
下一篇:python range 倒序
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站