Simplifica muchas características complejas que lo hacen muy fácil de usar y fácil de adoptar. Por lo tanto, no se sorprenderá al saber que Python es un excelente lenguaje para la automatización, como lo representa la dependencia de Ansible.
Una de las mejores y más fáciles de automatizar es la red. Por lo tanto, en este tutorial, le mostraremos cómo obtener el nombre de host de un sistema utilizando varios módulos de Python.
¿Qué es un nombre de host?
Un nombre de host se refiere al nombre dado a un dispositivo para identificarlo en una red local. Los nombres de host facilitan que las máquinas se comuniquen dentro de una red.
En Windows, puede obtener el nombre de host de un dispositivo utilizando el comando:
$ Nombre de host
También puede usar el mismo comando en Linux para obtener el nombre de host de su dispositivo.
$ hostname -s
En Python, podemos usar varias técnicas y métodos para obtener el nombre de host de una máquina.
Discutamos estos métodos y cómo usarlos.
Método 1 - Módulo de socket de Python
Uno de los módulos de redes más influyentes para Python es el módulo de socket. Nos proporciona características de red de bajo nivel que se pueden exportar en todos los sistemas.
Para encontrar el nombre de host usando el módulo de socket, usaremos la función gethostName ().
La sintaxis de la función es como se muestra:
enchufe.gethostName ()La función no toma ningún parámetro.
Luego devuelve una cadena que contiene el nombre de host de la máquina donde está instalado el intérprete.
Para usarlo, comience por importar el módulo de socket:
TOCKETOR DE IMPORTAA continuación, llame al socket.gethostName () función como:
TOCKETOR DE IMPORTAEn el ejemplo anterior, guardamos el nombre de host en una variable que podemos usar más tarde.
Método 2 - Módulo Python OS
El módulo OS nos proporciona la funcionalidad para interactuar con el sistema operativo. Por ejemplo, podemos usar la función Uname () de este módulo para determinar el nombre de host del sistema.
La sintaxis de la función es como se muestra:
sistema operativo.tu nombre()Del mismo modo, la función no toma ningún parámetro. Luego devuelve un objeto compuesto por cinco atributos, a saber:
Para usarlo, podemos comenzar importando la función Uname desde el módulo OS
de la importación del sistema operativoLuego podemos usar la función Uname para obtener los detalles del sistema:
imprimir (uname ())La función debe retener el objeto que contiene la información del sistema como:
Posix.uname_result (sysname = 'linux', nodename = 'maestro', versión = '5.10.102.1-Microsoft-Standard-WSL2 ', versión ='#1 SMP Mié 2 de marzo 00:30:59 UTC 2022 ', Machine =' x86_64 ')Tenga en cuenta que la función Uname () solo funciona en sistemas UNIX. Para los sistemas de Windows, verifique el segundo método a continuación.
Para obtener solo el nombre de host, podemos acceder al segundo elemento en el objeto utilizando la notación del índice como:
de la importación del sistema operativoEsto debería devolver solo el nombre de host de la máquina.
Método 3 - Módulo Python OS (GetNev)
Como se mencionó, la función Uname () fallará en los sistemas de Windows. Sin embargo, puede usar la función getenv () y pasar la clave de destino.
La sintaxis de la función es como se muestra:
sistema operativo.getenv (clave, predeterminado = ninguno)La función luego devolverá el valor de la variable de entorno asociada con la clave especificada.
Windows tiene un entorno llamado "ComputerName" que contiene el nombre de host de la máquina.
Podemos usar esta variable de entorno como clave para la función getNev () como:
de OS Import GetenvEl código anterior debe devolver el nombre de host de la máquina como una cadena.
En Linux, sustituya la clave de 'ComputerNane' a 'Nombre'.
Método 4 - Módulo de plataforma de Python
Python tiene otro gran módulo que nos permite obtener el nombre de host de una máquina. La plataforma nos permite reunir hechos sobre una plataforma, como redes, sistema operativo, intérpretes y más.
Para obtener el nombre de host de una máquina utilizando el módulo de plataforma, podemos usar la función nodo ().
La sintaxis es como se muestra:
plataforma.nodo()Por lo general, la función no toma ningún parámetro. Luego devuelve el nombre de host de la máquina actual como una cadena.
Comencemos por importar la función de nodo:
Desde el nodo de importación de plataformaLa función funciona tanto en Windows como en sistemas UNIX.
Método 5 - Obtener nombre de host desde IP
En algunos casos, es posible que deba obtener el nombre de host de una dirección IP dada. Usamos la función gethostByAddr () desde el módulo de enchufe.
La sintaxis de la función es como se muestra:
enchufe.GethostByAddr (IP_Address)La función acepta la dirección IP como el argumento en el tipo de cadena y devuelve la información sobre la dirección IP.
La función devuelve información como hostname, aliaslist e ipaddrlist como tupla. Luego podemos usar la indexación de tupla para obtener el nombre de host de la IP.
Lo bueno de esta función es que admite IPv4 e IPv6.
Un código de ejemplo es como se muestra:
de Socket Import GethostByAddrAquí, estamos obteniendo el nombre de host de dos direcciones IP, una en IPv4 y la otra en IPv6.
Los valores resultantes son como se muestra:
IPv4: uno.uno.uno.unoComo puede ver en la salida anterior, la función puede resolver el nombre de host de ambas direcciones IP.
Conclusión
En este tutorial, exploramos cinco métodos que puede usar para obtener el nombre de host de una máquina usando Python. Elija el que funcione para usted y quédese con él.