我使用crossbar.io写聊天。我们有几个聊天节点。 我需要写关于每个节点的统计信息,这就是我需要获取运行特定节点的主机名的原因。
是否可以从组件实例中获取主机名?
我使用最后一个版本的crossbar / autobahn和python 3.4。
如果我使用本地环境,则期望获得 - 127.0.0.1。
答案 0 :(得分:2)
只需使用套接字库:
import socket
hostname = socket.gethostname()
答案 1 :(得分: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]