Como posso resolver um nome de host para um endereço IP em um script Bash?

How Can I Resolve Hostname An Ip Address Bash Script



Cada sistema em uma rede TCP / IP é atribuído a um identificador exclusivo conhecido como endereço IP que ajuda a conectá-lo a outro sistema da rede e por toda a Internet. Todos os sites que você acessa na Internet também possuem endereços IP exclusivos. Como é difícil para todos lembrar os endereços IP desses sites, o sistema DNS vem, o que ajuda a traduzir esses endereços IP difíceis de lembrar em nomes legíveis por humanos. Com o DNS, você não precisa mais se lembrar dos endereços IP. Em vez disso, você só precisa se lembrar do nome de domínio e pronto. Na verdade, no backup, o servidor DNS pega o nome do host e o resolve para um endereço IP ao qual o navegador ou aplicativo se conecta.

Neste artigo, explicaremos como resolver um nome de host / nome de domínio para um endereço IPv4 e IPv6 em um script Bash. No entanto, antes de prosseguir com a criação do script, vamos revisar alguns dos comandos que podem ser usados ​​para resolver o nome do host / nome do domínio para um endereço IP.







Ping

Ping é a ferramenta mais simples e integrada que está disponível em quase todos os sistemas operacionais. É usado para verificar a acessibilidade de um host em uma rede. No entanto, também podemos usá-lo para encontrar o endereço IP em qualquer nome de host / nome de domínio. Use a seguinte sintaxe para encontrar o endereço IP de um nome de host / domínio de destino:



$pinghost-alvo



Nslookup

Nslookup é amplamente usado para resolver o nome do host para um endereço IP. Para usar este comando para uma pesquisa de IP, use a seguinte sintaxe:





$host-alvo nslookup

Hospedeiro

Outro host de utilitário de linha de comando pode ser usado para localizar o endereço IP em qualquer nome de host / nome de domínio. Para usar este comando, use a seguinte sintaxe:



$hospedeiro hospedeiro-alvo

Vocês

Dig é outra ferramenta de linha de comando útil usada para consultar vários registros relacionados ao DNS. Ele pode ser usado para encontrar o endereço IP em qualquer nome de host / nome de domínio. Use o comando Dig da seguinte maneira para encontrar um endereço IP em um nome de host / domínio específico.

$tutarget-host + short

Script Bash para resolver um nome de host para um endereço IP

Para usar o script bash para uma pesquisa de IP, siga as etapas abaixo:

  1. Crie um arquivo bash usando qualquer editor de texto. Aqui, usarei o editor Nano para criar um script chamado iplookup.sh .$sudo nanoscript.sh
  1. Copie e cole as seguintes linhas em seu arquivo de script. Observe que, aqui neste script, estou especificando o servidor DNS público do Google para pesquisa de IP. Você pode especificar qualquer outro servidor DNS de acordo com seu ambiente.# Especifique o servidor DNS
    Servidor dns='8.8.8.8'
    # função para obter o endereço IP
    funçãoget_ipaddr{
    endereço de IP=''
    # A e registro AAA para IPv4 e IPv6, respectivamente
    # $ 1 representa o primeiro argumento
    E se [ -n '$ 1' ];então
    nome de anfitrião='$ {1}'
    E se [ -Com 'Tipo de consulta' ];então
    Tipo de consulta='PARA'
    ser
    # use o comando host para operações de busca DNS
    hospedeiro-t $ {query_type} $ {hostname} &> /dev/nulo$ {dnsserver}
    E se [ '$?' -eq '0' ];então
    # obter endereço IP
    endereço de IP='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    outro
    saída 1
    ser
    outro
    saída 2
    ser
    # display ip
    jogou fora $ ip_address
    }
    nome de anfitrião='$ {1}'
    paraconsultano 'A-IPv4' 'AAAA-IPv6';Faz
    Tipo de consulta='$ (printf $ query | cut -d- -f 1)'
    ipversion='$ (printf $ query | cut -d- -f 2)'
    Morada='$ (get_ipaddr $ {hostname})'
    E se [ '$?' -eq '0' ];então
    E se [ -n '$ {address}' ];então
    jogou fora 'O$ {ipversion}endereço do nome do host$ {hostname}é:$ endereço'
    ser
    outro
    jogou fora 'Um erro ocorreu'
    ser
    feito
  2. Uma vez feito isso, use Ctrl + O e Ctrl + X para salvar e sair do arquivo, respectivamente.
  3. Agora, para encontrar um endereço IP em um nome de host / domínio de destino, execute o script usando a seguinte sintaxe:$./script.sh target-host

    Por exemplo, para resolver o endereço IP de google.com, o comando seria:

    $./iplookup.sh google.com

    A saída seria semelhante a esta:

    Da mesma forma, para resolver o endereço IP de yahoo.com, o comando seria:

    $./iplookup.sh yahoo.com

    A saída seria semelhante a esta:

    Isso é tudo que há para fazer! Neste artigo, aprendemos a resolver o nome do host para um endereço IPv4 e IPv6 usando um script bash. Também aprendemos algumas outras ferramentas de linha de comando, como Ping, Nslookup, Host e Dig, que podem ser usadas para realizar uma pesquisa de IP.