2016-04-26 11 views
1

私はcrossbar.ioを使ってチャットをします。私たちはチャットのいくつかのノードを持っています。 各ノードについての統計を書き込む必要があるため、特定のノードが実行されているホスト名を取得する必要があります。Crossbar.ioホスト名を取得するには?

コンポーネントインスタンスからホスト名を取得できますか?

私はcrossbar/autobahnとpython 3.4の最新バージョンを使用しています。

ローカル環境を使用している場合は、127.0.0.1が必要です。

答えて

1

ただ、ソケットライブラリを使用します。あなたのマシンの場合は

import socket 

hostname = socket.gethostname() 
+0

それは、このために動作しません、あなたは「間違ったホスト名」とはどういう意味ですか間違ったホスト名 –

+0

@AleksandrYarushevskyを得ましたか。 – user312016

+0

私はlocalhostを実行し、127.0.0.1の代わりに172.17.0.1を取得しました –

1

を解決可能なホスト名がでてみました:アップデート

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

。これは、より完全なソリューションである、すべてのOSで正常に動作する必要があります:

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]

+0

同じ結果が127.0.0.1の代わりに172.17.0.1を取得しました –

関連する問題