在我的设备上,Socket IO 返回 127.0.0.1 作为主机地址,而不是 192.168.0.*

Vas*_*a S 4 python networking

当我运行以下代码来确定设备的本地 IP 地址时,我得到的是 127.0.0.1,而不是 192.168.0.101。

import socket
import threading

PORT = 8080
HOST_NAME = socket.gethostname()
print(HOST_NAME)
SERVER = socket.gethostbyname(HOST_NAME)

print(SERVER)
Run Code Online (Sandbox Code Playgroud)

我在控制台上得到的输出是

MyDeviceName.local
127.0.0.1
Run Code Online (Sandbox Code Playgroud)

小智 6

127.0.0.1是localhost地址,没错。如果您想要设备的地址,请执行以下操作:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
Run Code Online (Sandbox Code Playgroud)