python 如何获取本地ip地址?

sor*_*mdg 5 python sockets localhost local-network python-sockets

我在互联网上找到了一段代码,它表示它为我的机器提供了本地网络 IP 地址:

hostname = socket.gethostname()
local_ip = socket.gethostbyname(hostname)
Run Code Online (Sandbox Code Playgroud)

但它返回的IP是192.168.94.2,但我在WIFI网络中的IP地址实际上是192.168.1.107 我怎样才能只用python获取wifi网络本地IP地址?我希望它适用于 Windows、Linux 和 MacOS。

Moh*_*med 8

您可以使用此代码:

import socket
hostname = socket.getfqdn()
print("IP Address:",socket.gethostbyname_ex(hostname)[2][1])
Run Code Online (Sandbox Code Playgroud)

或者这样获取公共IP:

import requests
import json
print(json.loads(requests.get("https://ip.seeip.org/jsonip?").text)["ip"])
Run Code Online (Sandbox Code Playgroud)

  • 将最后一个索引 1 修改为 0,以处理我的设置:socket.gethostbyname_ex(hostname)[2][0] (3认同)
  • 这是有效的。谢谢 (2认同)