Python SimpleXMLRPCServer 服务器地址

3 投票
1 回答
581 浏览
提问于 2025-04-18 06:03

我正在用Python搭建一个简单的RPC服务器,主要用于实验室内部网络。当我用下面的代码创建服务器时:

server = SimpleXMLRPCServer(("", 8000))

服务器似乎可以在多个可用的接口上监听(也就是说,它可以同时在本地和计算机的公网IP地址上工作),这正是我想要的。

有没有简单且尽量通用的方法,让我的服务器脚本知道它正在监听哪些IP地址呢?

这个服务器一般会在随机的Windows机器上运行,这些机器的IP地址是动态的,并且安装了Python 2.6。如果我的服务器在启动时能打印出类似“正在监听 address1:port address2:port...”的信息,那就太好了。我见过一些关于获取客户端地址的问题,但我想知道的是服务器的地址。

1 个回答

1
import socket
print([(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])

我找到了一些有用的方法,可以参考这个页面:使用Python的标准库查找本地IP地址

撰写回答