¿Cómo puedo convertir un nombre de host en una dirección IP en un script Bash?

How Can I Resolve Hostname An Ip Address Bash Script



A cada sistema de una red TCP / IP se le asigna un identificador único conocido como dirección IP que ayuda a conectarlo con otro sistema de la red y en Internet. Todos los sitios web a los que accede en Internet también tienen direcciones IP únicas. Como es difícil para todos recordar las direcciones IP de estos sitios web, viene el sistema DNS que ayuda a traducir estas direcciones IP difíciles de recordar en nombres legibles por humanos. Con DNS, ya no tiene que recordar las direcciones IP. En su lugar, solo tiene que recordar el nombre de dominio y listo. En realidad, en el respaldo, el servidor DNS toma el nombre de host y lo resuelve en una dirección IP a la que luego se conecta el navegador o la aplicación.

En este artículo, explicaremos cómo resolver un nombre de host / nombre de dominio en una dirección IPv4 e IPv6 en un script Bash. Sin embargo, antes de continuar con la creación del script, revisemos algunos de los comandos que se pueden usar para resolver el nombre de host / nombre de dominio en una dirección IP.







Silbido

Ping es la herramienta más simple e integrada que está disponible en casi todos los sistemas operativos. Se utiliza para verificar la accesibilidad de un host en una red. Sin embargo, también podemos usarlo para encontrar la dirección IP frente a cualquier nombre de host / nombre de dominio. Utilice la siguiente sintaxis para encontrar la dirección IP de un nombre de host / nombre de dominio de destino:



$silbidohost-objetivo



Nslookup

Nslookup se usa ampliamente para resolver el nombre de host en una dirección IP. Para usar este comando para una búsqueda de IP, use la siguiente sintaxis:





$host de destino de nslookup

Anfitrión

Se puede utilizar otro host de utilidad de línea de comandos para buscar la dirección IP frente a cualquier nombre de host / nombre de dominio. Para utilizar este comando, utilice la siguiente sintaxis:



$host objetivo-host

usted

Dig es otra herramienta útil de línea de comandos que se utiliza para consultar varios registros relacionados con DNS. Se puede utilizar para buscar la dirección IP con cualquier nombre de host / nombre de dominio. Utilice el comando Dig de la siguiente manera para encontrar una dirección IP frente a un nombre de host / nombre de dominio específico.

$ustedhost-objetivo + corto

Script Bash para resolver un nombre de host en una dirección IP

Para utilizar el script bash para una búsqueda de IP, siga los pasos a continuación:

  1. Cree un archivo bash usando cualquier editor de texto. Aquí usaré el editor Nano para crear un script llamado iplookup.sh .$sudo nanoscript.sh
  1. Copie y pegue las siguientes líneas en su archivo de secuencia de comandos. Tenga en cuenta que, aquí en esta secuencia de comandos, estoy especificando el servidor DNS público de Google para la búsqueda de IP. Puede especificar cualquier otro servidor DNS según su entorno.# Especifique el servidor DNS
    servidor DNS='8.8.8.8'
    # función para obtener la dirección IP
    funciónget_ipaddr{
    dirección IP=''
    # Registro A y AAA para IPv4 e IPv6, respectivamente
    # $ 1 representa el primer argumento
    si [ -norte '$1' ];luego
    nombre de host='${1}'
    si [ -Con 'Tipo de consulta' ];luego
    Tipo de consulta='A'
    ser
    # use el comando de host para las operaciones de búsqueda de DNS
    anfitrión-t $ {query_type} $ {nombre de host} &>/dev/nulo$ {dnsserver}
    si [ '$?' -eq '0' ];luego
    # obtener la dirección IP
    dirección IP='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    demás
    Salida 1
    ser
    demás
    Salida 2
    ser
    # mostrar ip
    echo $ dirección_ip
    }
    nombre de host='${1}'
    porconsultaen 'A-IPv4' 'AAAA-IPv6';hacer
    Tipo de consulta='$ (printf $ consulta | cortar -d- -f 1)'
    ipversion='$ (printf $ consulta | cortar -d- -f 2)'
    Dirección='$ (get_ipaddr $ {nombre de host})'
    si [ '$?' -eq '0' ];luego
    si [ -norte '$ {dirección}' ];luego
    echo 'Los$ {ipversion}dirección del nombre de host$ {nombre de host}es:$ dirección'
    ser
    demás
    echo 'Ocurrió un error'
    ser
    hecho
  2. Una vez hecho esto, use Ctrl + O y Ctrl + X para guardar y salir del archivo respectivamente.
  3. Ahora, para encontrar una dirección IP contra un nombre de host / nombre de dominio de destino, ejecute el script con la siguiente sintaxis:$./script.sh host de destino

    Por ejemplo, para resolver la dirección IP de google.com, el comando sería:

    $./iplookup.sh google.com

    El resultado sería similar a esto:

    De manera similar, para resolver la dirección IP de yahoo.com, el comando sería:

    $./iplookup.sh yahoo.com

    El resultado sería similar a esto:

    ¡Eso es todo! En este artículo, hemos aprendido a resolver el nombre de host en una dirección IPv4 e IPv6 mediante un script bash. También aprendimos algunas otras herramientas de línea de comandos como Ping, Nslookup, Host y Dig que se pueden usar para realizar una búsqueda de IP.