968 Stimmen

Wie kann ich mit Python den System-Hostnamen ermitteln?

Ich schreibe ein Chat-Programm für ein lokales Netzwerk. Ich würde gerne in der Lage sein, Computer zu identifizieren und den vom Benutzer eingestellten Computernamen mit Python zu erhalten.

9voto

GreenMatt Punkte 17578

Auf einigen Systemen wird der Hostname in der Umgebung festgelegt. Wenn dies bei Ihnen der Fall ist, kann der Betriebssystem-Modul kann es aus der Umwelt herausziehen über os.getenv . Wenn zum Beispiel HOSTNAME die Umgebungsvariable ist, die das Gewünschte enthält, wird sie mit dem folgenden Befehl abgerufen:

import os
system_name = os.getenv('HOSTNAME')

Aktualisierung: Wie in den Kommentaren erwähnt, funktioniert dies nicht immer, da nicht alle Umgebungen so eingerichtet sind. Ich glaube, dass ich zu dem Zeitpunkt, als ich diese Frage ursprünglich beantwortet habe, diese Lösung verwendet habe, da sie das erste war, was ich bei einer Websuche gefunden habe, und sie hat damals für mich funktioniert. Aufgrund der mangelnden Übertragbarkeit würde ich sie jetzt wahrscheinlich nicht mehr verwenden. Ich lasse diese Antwort jedoch zu Referenzzwecken stehen. FWIW, es eliminiert die Notwendigkeit für andere Importe, wenn Ihre Umgebung den Systemnamen hat und Sie bereits das os-Modul importieren. Testen Sie es - wenn es nicht in allen Umgebungen funktioniert, in denen Sie erwarten, dass Ihr Programm funktioniert, verwenden Sie eine der anderen angebotenen Lösungen.

7voto

Bill Kidd Punkte 1004

Ich brauchte den Namen des PCs, den ich in meiner PyLog-Konf-Datei verwenden wollte, und die Socket-Bibliothek ist nicht verfügbar, aber die Os-Bibliothek schon.

Para Windows Ich benutzte:

os.getenv('COMPUTERNAME', 'defaultValue')

wobei defaultValue eine Zeichenkette ist, um zu verhindern, dass None zurückgegeben wird

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X