我用crossbar.io写聊天。我们有几个聊天节点。我需要编写每个节点的统计信息,这就是为什么我需要获得运行特定节点的主机名的原因。
是否有可能从组件实例中获取主机名?
我使用的是十字/高速公路和python3.4的最后一个版本。
如果我使用本地环境,请期待get - 127.0.0.1。
发布于 2016-04-26 19:53:01
只需使用套接字库:
import socket
hostname = socket.gethostname()发布于 2016-04-26 21:06:47
如果您的计算机具有可解析的主机名,请尝试:
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]
https://stackoverflow.com/questions/36874061
复制相似问题