Il simplifie de nombreuses fonctionnalités complexes, ce qui le rend très convivial et facile à adopter. Par conséquent, vous ne serez pas surpris d'apprendre que Python est une excellente langue pour l'automatisation, comme le représenter la dépendance d'Anible.
L'une des pièces les plus faciles et les meilleures à automatiser est le réseautage. Par conséquent, dans ce tutoriel, nous vous montrerons comment récupérer le nom d'hôte d'un système en utilisant divers modules Python.
Qu'est-ce qu'un nom d'hôte?
Un nom d'hôte fait référence au nom donné à un appareil pour l'identifier dans un réseau local. Les noms d'hôte permettent aux machines de communiquer facilement dans un réseau.
Dans Windows, vous pouvez obtenir le nom d'hôte d'un appareil à l'aide de la commande:
$ hostname
Vous pouvez également utiliser la même commande sur Linux pour récupérer le nom d'hôte de votre appareil.
$ hostname -s
Dans Python, nous pouvons utiliser diverses techniques et méthodes pour obtenir le nom d'hôte d'une machine.
Discutons de ces méthodes et comment les utiliser.
Méthode 1 - Module de prise Python
L'un des modules de réseautage les plus influents pour Python est le module Socket. Il nous offre des fonctionnalités de réseautage de bas niveau qui peuvent être exportées entre les systèmes.
Pour trouver le nom d'hôte à l'aide du module de socket, nous utiliserons la fonction gethostname ().
La syntaxe de fonction est comme indiqué:
prise.gethostname ()La fonction ne prend aucun paramètre.
Il renvoie ensuite une chaîne tenant le nom d'hôte de la machine où l'interprète est installé.
Pour l'utiliser, commencez par importer le module de socket:
socket d'importationEnsuite, appelez la prise.GethostName () fonctionne comme:
socket d'importationDans l'exemple ci-dessus, nous enregistrons le nom d'hôte dans une variable que nous pouvons utiliser plus tard.
Méthode 2 - Module Python OS
Le module OS nous offre la fonctionnalité pour interagir avec le système d'exploitation. Par exemple, nous pouvons utiliser la fonction UNAME () de ce module pour déterminer le nom d'hôte du système.
La syntaxe de fonction est comme indiqué:
OS.ton nom()De même, la fonction ne prend aucun paramètre. Il renvoie ensuite un objet composé de cinq attributs, à savoir:
Pour l'utiliser, nous pouvons commencer par importer la fonction demame à partir du module OS
à partir de l'opportunité d'importationNous pouvons ensuite utiliser la fonction DESAME pour obtenir les détails du système:
imprimer (uname ())La fonction doit conserver l'objet tenant les informations du système comme:
posix.uname_result (sysname = 'linux', nodename = 'maître', release = '5.dix.102.1-microsoft-standard-wsl2 ', version =' # 1 SMP mer 2 mars 00:30:59 UTC 2022 ', machine =' x86_64 ')Notez que la fonction uname () ne fonctionne que sur les systèmes UNIX. Pour les systèmes Windows, vérifiez la deuxième méthode ci-dessous.
Pour obtenir uniquement le nom d'hôte, nous pouvons accéder au deuxième élément de l'objet en utilisant la notation d'index comme:
à partir de l'opportunité d'importationCela ne devrait retourner que le nom d'hôte de la machine.
Méthode 3 - Module Python OS (Getnev)
Comme mentionné, la fonction uname () échouera sur les systèmes Windows. Cependant, vous pouvez utiliser la fonction GETENV () et passer la clé cible.
La syntaxe de fonction est comme indiqué:
OS.GETENV (clé, par défaut = aucun)La fonction renvoie ensuite la valeur de la variable d'environnement associée à la clé spécifiée.
Windows a un environnement appelé «Computer Name» qui contient le nom d'hôte de la machine.
Nous pouvons utiliser cette variable d'environnement comme clé de la fonction getNev () comme:
à partir d'importation OS GetenvLe code ci-dessus doit renvoyer le nom d'hôte de la machine en tant que chaîne.
Dans Linux, remplacez la clé de «Computternane» à «nom».
Méthode 4 - Module de plate-forme Python
Python a un autre grand module qui nous permet de récupérer le nom d'hôte d'une machine. La plate-forme nous permet de rassembler des faits sur une plate-forme, comme le réseautage, le système d'exploitation, les interprètes, et plus.
Pour récupérer le nom d'hôte d'une machine à l'aide du module de plate-forme, nous pouvons utiliser la fonction Node ().
La syntaxe est comme indiqué:
plateforme.nœud()En règle générale, la fonction ne prend aucun paramètre. Il renvoie ensuite le nom d'hôte de la machine actuelle en tant que chaîne.
Commençons par importer la fonction de nœud:
à partir du nœud d'importation de plate-formeLa fonction fonctionne sur les systèmes Windows et Unix.
Méthode 5 - Obtenez le nom d'hôte à partir d'IP
Dans certains cas, vous devrez peut-être récupérer le nom d'hôte d'une adresse IP donnée. Nous utilisons la fonction GethostByAddr () du module Socket.
La syntaxe de fonction est comme indiqué:
prise.gethostbyaddr (ip_address)La fonction accepte l'adresse IP comme l'argument dans le type de chaîne et renvoie les informations sur l'adresse IP.
La fonction renvoie des informations telles que le nom d'hôte, Aliaslist et iPaddrlist en tant que tuple. Nous pouvons ensuite utiliser l'indexation des tuple pour obtenir le nom d'hôte de l'IP.
La bonne chose à propos de cette fonction est qu'elle prend en charge IPv4 et IPv6.
Un exemple de code est comme indiqué:
à partir de socket import gethostbyaddrIci, nous récupérons le nom d'hôte de deux adresses IP, l'une en IPv4 et l'autre dans IPv6.
Les valeurs résultantes sont telles que montrées:
IPv4: un.un.un.unComme vous pouvez le voir dans la sortie ci-dessus, la fonction est capable de résoudre le nom d'hôte des deux adresses IP.
Conclusion
Dans ce tutoriel, nous avons exploré cinq méthodes que vous pouvez utiliser pour récupérer le nom d'hôte d'une machine à l'aide de Python. Veuillez choisir celui qui fonctionne pour vous et respecter.