2016-04-26 23 views
1

Ich schreibe Chat mit crossbar.io. Wir haben mehrere Knoten des Chats. Ich brauche Statistiken über jeden der Knoten, deshalb muss ich den Host-Namen holen, wo der spezifische Knoten läuft.Wie bekomme ich den Hostnamen von Crossbar.io?

Ist es möglich, den Hostnamen von der Komponenteninstanz zu erhalten?

Ich benutze letzte Version von Crossbar/Autobahn und Python 3.4.

Erwarten Sie erhalten - 127.0.0.1, wenn ich lokale Umgebung verwende.

Antwort

1

Verwenden Sie einfach die Socket-Bibliothek:

import socket 

hostname = socket.gethostname() 
+0

Es funktioniert nicht für diesen, bekommen falschen Hostname –

+0

@AleksandrYarushevsky Was meinst du mit „falschen Hostnamen“? – user312016

+0

Jetzt laufe ich auf localhost und ich habe 172.17.0.1 statt 127.0.0.1 –

1

Bei Ihrer Maschine hat einen auflösbaren Hostnamen versuchen, mit:

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

aktualisieren. Dies ist eine Komplettlösung, sollte mit allen OS funktionieren:

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

Das gleiche Ergebnis bekam 172.17.0.1 statt 127.0.0.1 –

Verwandte Themen