Ele simplifica muitos recursos complexos, tornando-o muito fácil de usar e fácil de adotar. Portanto, você não ficará surpreso ao saber que o Python é uma excelente linguagem para automação, conforme descrito pela dependência de Ansible.
Uma das peças mais fáceis e melhores a serem automatizadas é a rede. Portanto, neste tutorial, mostraremos como buscar o nome do host de um sistema usando vários módulos Python.
O que é um nome de host?
Um nome de host refere -se ao nome dado a um dispositivo para identificá -lo em uma rede local. Os nomes de host facilitam a comunicação de máquinas em uma rede.
No Windows, você pode obter o nome do host de um dispositivo usando o comando:
$ hostname
Você também pode usar o mesmo comando no Linux para buscar o nome do host do seu dispositivo.
$ hostname -s
No Python, podemos usar várias técnicas e métodos para obter o nome do host de uma máquina.
Vamos discutir esses métodos e como usá -los.
Método 1 - Módulo de soquete Python
Um dos módulos de rede mais influentes para o Python é o módulo de soquete. Ele nos fornece recursos de rede de baixo nível que podem ser exportados entre os sistemas.
Para encontrar o nome do host usando o módulo de soquete, usaremos a função gethostName ().
A sintaxe da função é como mostrado:
soquete.GethostName ()A função não leva parâmetros.
Em seguida, ele retorna uma string segurando o nome do host da máquina, onde o intérprete está instalado.
Para usá -lo, comece importando o módulo de soquete:
soquete de importaçãoEm seguida, ligue para o soquete.GethostName () função como:
soquete de importaçãoNo exemplo acima, salvamos o nome do host em uma variável que podemos usar mais tarde.
Método 2 - Módulo Python OS
O módulo OS nos fornece a funcionalidade para interagir com o sistema operacional. Por exemplo, podemos usar a função uname () deste módulo para determinar o nome do host do sistema.
A sintaxe da função é como mostrado:
OS.uname ()Da mesma forma, a função não leva parâmetros. Em seguida, retorna um objeto composto por cinco atributos, a saber:
Para usá -lo, podemos começar importando a função uname do módulo OS
De importar o SO UnamePodemos então usar a função UNAME para obter os detalhes do sistema:
print (uname ())A função deve manter o objeto que mantém as informações do sistema como:
Posix.uname_result (sysname = 'linux', nodename = 'master', release = '5.10.102.1-Microsoft-Standard-Wsl2 ', versão ='#1 Smp Qua 2 de março 00:30:59 UTC 2022 ', Machine =' x86_64 ')Observe que a função uname () funciona apenas em sistemas Unix. Para sistemas Windows, verifique o segundo método abaixo.
Para obter apenas o nome do host, podemos acessar o segundo elemento no objeto usando a notação de índice como:
De importar o SO UnameIsso deve retornar apenas o nome do host da máquina.
Método 3 - Módulo Python OS (GetNev)
Como mencionado, a função uname () falhará nos sistemas Windows. No entanto, você pode usar a função getenv () e passar na tecla de destino.
A sintaxe da função é como mostrado:
OS.getenv (chave, padrão = nenhum)A função retornará o valor da variável de ambiente associada à chave especificada.
O Windows tem um ambiente chamado "Computername", que segura o nome do host da máquina.
Podemos usar essa variável de ambiente como a chave para a função getNev () como:
De importar o sistema getenvO código acima deve retornar o nome do host da máquina como uma string.
No Linux, substitua a chave de 'computnane' ao 'nome'.
Método 4 - Módulo de plataforma Python
Python tem outro ótimo módulo que nos permite buscar o nome do host de uma máquina. A plataforma nos permite reunir fatos sobre uma plataforma, como rede, sistema operacional, intérpretes e muito mais.
Para buscar o nome do host de uma máquina usando o módulo da plataforma, podemos usar a função Node ().
A sintaxe é como mostrado:
plataforma.nó()Normalmente, a função não leva parâmetros. Em seguida, ele retorna o nome do host da máquina atual como uma string.
Vamos começar importando a função do nó:
do nó de importação da plataformaA função funciona nos sistemas Windows e Unix.
Método 5 - Obtenha o nome do host do IP
Em alguns casos, pode ser necessário buscar o nome do host de um determinado endereço IP. Usamos a função GethostByaddr () do módulo de soquete.
A sintaxe da função é como mostrado:
soquete.Gethostbyaddr (ip_address)A função aceita o endereço IP como o argumento no tipo de string e retorna as informações sobre o endereço IP.
A função retorna informações como nome de host, aliaslist e ipaddrlist como uma tupla. Podemos então usar a indexação de tupla para obter o nome do host do IP.
O bom sobre essa função é que ele suporta IPv4 e IPv6.
Um código de exemplo é como mostrado:
do soquete de importação gethostbyaddrAqui, estamos buscando o nome do host de dois endereços IP, um em IPv4 e outro no IPv6.
Os valores resultantes são como mostrados:
IPv4: um.um.um.umComo você pode ver na saída acima, a função é capaz de resolver o nome do host de ambos os endereços IP.
Conclusão
Neste tutorial, exploramos cinco métodos que você pode usar para buscar o nome do host de uma máquina usando Python. Escolha aquele que funciona para você e fique com ele.