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 importierenRufen Sie als nächstes den Socket an.Gethostname () Funktion als:
Socket importierenIm 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:
Um es zu verwenden, können wir zunächst die Uname -Funktion aus dem Betriebssystemmodul importieren
vom OS -Import UnameWir 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 UnameDies 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 GetenvDer 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 PlattformimportknotenDie 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 GethostbyaddrHier 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.einsWie 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.