Python Obtenha o nome do host

Python Obtenha o nome do host
O Python é uma das linguagens de programação mais populares e amplamente adotadas da era moderna. E por um bom motivo, é uma linguagem de programação de alto nível de código aberto, que oferece sintaxe simples e mínima.

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ção

Em seguida, ligue para o soquete.GethostName () função como:

soquete de importação
host = soquete.GethostName ();
print ("HostName ->", host)

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

  1. sysname - o nome do sistema operacional.
  2. Nodename - o nome da máquina na rede ou nome de host.
  3. liberação - o lançamento do sistema operacional.
  4. versão - a versão do sistema operacional
  5. máquina - o identificador de hardware.

Para usá -lo, podemos começar importando a função uname do módulo OS

De importar o SO Uname

Podemos 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 Uname
print (uname () [1])

Isso 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 getenv
Impressão (OS.Getenv ('Computername'))

O 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 plataforma
Em seguida, use -o para buscar o nome do host como:
do nó de importação da plataforma
impressão (node ​​())

A 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 gethostbyaddr
print ("IPv4:", Gethostbyaddr ("1.1.1.1 ") [0])
print ("IPv6:", Gethostbyaddr ("2606: 4700: 4700 :: 1111") [0])

Aqui, 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.um
IPv6: um.um.um.um

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