1

我使用 crossbar.io 编写聊天。我们有几个聊天节点。我需要编写有关每个节点的统计信息,这就是为什么我需要获取运行特定节点的主机名的原因。

是否可以从组件实例中获取主机名?

我使用最新版本的横杆/高速公路和 python 3.4。

如果我使用本地环境,期望得到 - 127.0.0.1。

4

2 回答 2

2

只需使用套接字库:

import socket

hostname = socket.gethostname()
于 2016-04-26T19:53:01.467 回答
2

如果您的机器具有可解析的主机名,请尝试:

import socket socket.gethostbyname(socket.getfqdn())

更新。这是一个更完整的解决方案,应该适用于所有操作系统:

import socket
print [l for l in ([ip for ip in socket.gethostbyname_ex( socket.gethostname())[2] if not ip.startswith('127.')][:1], [[(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close() ) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]]) if l][0][0]

于 2016-04-26T21:06:47.487 回答