Python Erhalten Sie Hostname

Python Erhalten Sie Hostname
Python ist eine der beliebtesten und am häufigsten übernommenen Programmiersprachen der Moderne. Und aus einem guten Grund ist es eine kostenlose Programmiersprache mit offener Quelle, die eine einfache und minimale Syntax bietet.

Es vereinfacht viele komplexe Funktionen, die es sehr benutzerfreundlich und einfach zu übernehmen,. Daher werden Sie nicht überrascht sein zu hören, dass Python eine hervorragende Sprache für die Automatisierung ist, wie das Vertrauen von Ansible darauf dargestellt wird.

Einer der einfachsten und besten Teile, die es zu automatisieren ist, ist die Vernetzung. In diesem Tutorial zeigen wir Ihnen daher, wie Sie den Hostnamen eines Systems mit verschiedenen Python -Modulen abrufen können.

Was ist ein Hostname?

Ein Hostname bezieht sich auf den Namen, der einem Gerät gegeben wurde, um es in einem lokalen Netzwerk zu identifizieren. Hostnames erleichtern es Maschinen, innerhalb eines Netzwerks zu kommunizieren.

In Windows können Sie den Hostnamen eines Geräts mit dem Befehl erhalten:

$ hostname

Sie können auch denselben Befehl unter Linux verwenden, um den Hostnamen Ihres Geräts abzurufen.

$ hostname -s

In Python können wir verschiedene Techniken und Methoden verwenden, um den Hostnamen einer Maschine zu erhalten.

Lassen Sie uns diese Methoden diskutieren und wie sie verwendet werden.

Methode 1 - Python Socket -Modul

Eines der einflussreichsten Netzwerkmodule für Python ist das Socket -Modul. Es bietet uns mit niedrigen Netzwerkfunktionen, die über Systeme exportiert werden können.

Um den Hostnamen mit dem Socket -Modul zu finden, werden wir die Funktion von Gethostname () verwenden.

Die Funktionssyntax ist wie gezeigt:

Steckdose.Gethostname ()

Die Funktion enthält keine Parameter.

Anschließend wird eine Zeichenfolge zurückgegeben, die den Hostnamen des Geräts befindet, in dem der Dolmetscher installiert ist.

Um es zu verwenden, importieren Sie zunächst das Socket -Modul:

Socket importieren

Rufen Sie als nächstes den Socket an.Gethostname () Funktion als:

Socket importieren
Host = Socket.Gethostname ();
print ("Hostname ->", Host)

Im obigen Beispiel speichern wir den Hostnamen in einer Variablen, die wir später verwenden können.

Methode 2 - Python OS -Modul

Das Betriebssystemmodul bietet uns die Funktionalität, mit dem Betriebssystem zu interagieren. Zum Beispiel können wir die UNAME () -Funktion dieses Moduls verwenden, um den Hostnamen des Systems zu bestimmen.

Die Funktionssyntax ist wie gezeigt:

Betriebssystem.dein Name()

Ebenso nimmt die Funktion keine Parameter an. Anschließend gibt es ein Objekt zurück, das aus fünf Attributen besteht, nämlich:

  1. SYSNAME - Der Name des Betriebssystems.
  2. KnodeName - Der Name des Computers im Netzwerk oder im Hostnamen.
  3. Veröffentlichung - Die OS -Veröffentlichung.
  4. Version - Die OS -Version
  5. Maschine - die Hardware -Kennung.

Um es zu verwenden, können wir zunächst die Uname -Funktion aus dem Betriebssystemmodul importieren

vom OS -Import Uname

Wir können dann die Uname -Funktion verwenden, um die Systemdetails zu erhalten:

print (uname ())

Die Funktion sollte das Objekt beibehalten, das die Systeminformationen hält wie:

posix.uname_result (sysname = 'linux', nodhename = 'master', release = '5.10.102.1-microsoft-standard-wsl2 ', Version ='#1 SMP Mi 2. März 00:30:59 UTC 2022 ', machine =' x86_64 '))

Beachten Sie, dass die Funktion uname () nur auf UNIX -Systemen funktioniert. Für Windows -Systeme überprüfen Sie die zweite Methode unten.

Um nur den Hostnamen zu erhalten, können wir unter Verwendung der Indexnotation auf das zweite Element im Objekt zugreifen als:

vom OS -Import Uname
print (uname () [1])

Dies sollte nur den Hostnamen der Maschine zurückgeben.

Methode 3 - Python OS -Modul (getNev)

Wie bereits erwähnt, fällt die Funktion Uname () auf Windows -Systemen aus. Sie können jedoch die Funktion getenv () verwenden und den Zielschlüssel übergeben.

Die Funktionssyntax ist wie gezeigt:

Betriebssystem.Getenv (Schlüssel, Standard = Keine)

Die Funktion gibt dann den Wert der Umgebungsvariablen zurück, die dem angegebenen Schlüssel zugeordnet sind.

Windows verfügt über eine Umgebung namens "Computername", die den Hostnamen des Geräts enthält.

Wir können diese Umgebungsvariable als Schlüssel zur Funktion getNev () als:

vom Betriebssystem import Getenv
Druck (Betriebssystem.Getenv ('CompuTername'))

Der obige Code sollte den Hostnamen des Computers als Zeichenfolge zurückgeben.

Ersetzen Sie unter Linux den Schlüssel von 'Computernane' in 'Name'.

Methode 4 - Python -Plattformmodul

Python hat ein weiteres großartiges Modul, das es uns ermöglicht, den Hostnamen einer Maschine zu holen. Die Plattform ermöglicht es uns, Fakten über eine Plattform wie Netzwerk, Betriebssystem, Dolmetscher und mehr zu sammeln.

Um den Hostnamen eines Computers mit dem Plattformmodul abzurufen, können wir die Funktion node () verwenden.

Die Syntax ist wie gezeigt:

Plattform.Knoten()

In der Regel nimmt die Funktion keine Parameter an. Anschließend gibt es den Hostnamen des aktuellen Computers als Zeichenfolge zurück.

Beginnen wir mit dem Import der Knotenfunktion:

vom Plattformimportknoten
Verwenden Sie es dann, um den Hostnamen als:
vom Plattformimportknoten
print (node ​​())

Die Funktion funktioniert sowohl auf Windows- als auch bei Unix -Systemen.

Methode 5 - Hostname von IP abrufen

In einigen Fällen müssen Sie möglicherweise den Hostnamen einer bestimmten IP -Adresse abrufen. Wir verwenden die Funktion von GethostbyAddr () aus dem Socket -Modul.

Die Funktionssyntax ist wie gezeigt:

Steckdose.GethostbyAddr (IP_ADDRESS)

Die Funktion akzeptiert die IP -Adresse als Argument im String -Typ und gibt die Informationen zur IP -Adresse zurück.

Die Funktion gibt Informationen wie Hostname, AliasList und iPaddrlist als Tupel zurück. Wir können dann die Tuple -Indexierung verwenden, um den Hostnamen der IP zu erhalten.

Das Gute an dieser Funktion ist, dass sie sowohl IPv4 als auch IPv6 unterstützt.

Ein Beispielcode ist wie gezeigt:

aus Socket Import Gethostbyaddr
print ("IPv4:", Gethostbyaddr ("1.1.1.1 ") [0])
print ("IPv6:", Gethostbyaddr ("2606: 4700: 4700 :: 1111") [0])

Hier holen wir den Hostnamen von zwei IP -Adressen, einen in IPv4 und den anderen in IPv6.

Die resultierenden Werte sind wie gezeigt:

IPv4: eins.eins.eins.eins
IPv6: Eins.eins.eins.eins

Wie Sie aus der obigen Ausgabe erkennen können, kann die Funktion den Hostnamen beider IP -Adressen beheben.

Abschluss

In diesem Tutorial haben wir fünf Methoden untersucht, mit denen Sie den Hostnamen einer Maschine mit Python abrufen können. Bitte wählen Sie die für Sie funktioniert und bleiben Sie dabei.