Python obtient un nom d'hôte

Python obtient un nom d'hôte
Python est l'un des langages de programmation les plus populaires et les plus adoptés de l'ère moderne. Et pour une bonne raison, c'est un langage de programmation de haut niveau libre et open source qui offre une syntaxe simple et minimale.

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'importation

Ensuite, appelez la prise.GethostName () fonctionne comme:

socket d'importation
hôte = socket.gethostname ();
print ("hostname ->", hôte)

Dans 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:

  1. sysname - le nom du système d'exploitation.
  2. Nodename - le nom de la machine sur le réseau ou le nom d'hôte.
  3. version - la version du système d'exploitation.
  4. Version - La version OS
  5. Machine - l'identifiant matériel.

Pour l'utiliser, nous pouvons commencer par importer la fonction demame à partir du module OS

à partir de l'opportunité d'importation

Nous 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'importation
imprimer (uname () [1])

Cela 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 Getenv
imprimer (OS.GETENV ('ComputerName'))

Le 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-forme
Ensuite, utilisez-le pour récupérer le nom d'hôte comme:
à partir du nœud d'importation de plate-forme
print (node ​​())

La 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 gethostbyaddr
print ("ipv4:", gethostbyaddr ("1.1.1.1 ") [0])
Print ("IPv6:", GethostbyAddr ("2606: 4700: 4700 :: 1111") [0])

Ici, 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.un
IPv6: un.un.un.un

Comme 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.