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

¿Cómo puedo resolver un nombre de host en una dirección IP en un script bash?
A cada sistema en 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 toda 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, lo 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 cambio, solo tienes que recordar el nombre de dominio y todo hecho. En realidad, en el respaldo, el servidor DNS toma el nombre de host y lo resuelve en una dirección IP a la que el navegador o la aplicación se conecta luego.

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 hacia la creación del script, revisemos algunos de los comandos que se pueden usar para resolver el nombre de host/nombre de dominio a una dirección IP.

Silbido

Ping es la herramienta más simple y incorporada 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 usarla para encontrar la dirección IP en cualquier nombre de host/nombre de dominio. Use la siguiente sintaxis para encontrar la dirección IP de un nombre de host/nombre de dominio dirigido:

$ Ping Target-Host

Nslookup

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

$ nslookup-host objetivo

Anfitrión

Se puede usar otra utilidad de línea de comandos "host" para encontrar la dirección IP en cualquier nombre de host/nombre de dominio. Para usar este comando, use la siguiente sintaxis:

$ Host Target-Host

Excavar

DIG es otra herramienta de línea de comando útil que se utiliza para consultar varios registros relacionados con DNS. Se puede usar para encontrar la dirección IP en cualquier nombre de host/nombre de dominio. Use el comando DIG de la siguiente manera para encontrar una dirección IP en un nombre de host/nombre de dominio específico.

$ Dig Target-Host +Short

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

Para usar el script bash para una búsqueda 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.mierda".
    $ sudo nano guión.mierda
  1. Copiar pete las siguientes líneas en su archivo de script. Tenga en cuenta que, aquí en este script, 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.
    # Especificar el servidor DNS
    dnsserver = "8.8.8.8 "
    # función para obtener la dirección IP
    función get_ipaddr
    ip_address = ""
    Registro # A y AAA para IPv4 e IPv6, respectivamente
    # $ 1 representa el primer argumento
    if [-n "$ 1"]; entonces
    hostname = "$ 1"
    if [-z "query_type"]; entonces
    query_type = "A"
    FI
    # Use el comando de host para las operaciones de búsqueda de DNS
    host -t $ query_type $ hostname &>/dev/null $ dnsserver
    Si ["$?"-eq" 0 "]; entonces
    # Obtener la dirección IP
    ip_address = "$ (host -t $ query_type $ hostname $ dnsserver | awk '/ha.*dirección/imprimir $ nf; salida')"
    demás
    Salir 1
    FI
    demás
    Salir 2
    FI
    # Mostrar IP
    echo $ ip_address

    hostname = "$ 1"
    para la consulta en "a-ipv4" "aaaa-ipv6"; hacer
    query_type = "$ (printf $ QUERY | CUT -D- -F 1)"
    ipVersion = "$ (printf $ QUERY | CUT -D- -F 2)"
    dirección = "$ (get_ipaddr $ hostname)"
    Si ["$?"-eq" 0 "]; entonces
    if [-n "$ dirección"]; entonces
    echo "La dirección $ ipversion del nombre de host $ hostname es: $ dirección"
    FI
    demás
    echo "ocurrió un error"
    FI
    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 en un nombre de host/nombre de dominio dirigido, ejecute el script usando la siguiente sintaxis:
    ps ./guion.SH Target-Host

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

    ps ./iPlookup.SH Google.comunicarse

    La salida sería similar a esta:

    Del mismo modo, para resolver la dirección IP de "Yahoo.com ”, el comando sería:

    ps ./iPlookup.sh yahoo.comunicarse

    La salida sería similar a esta:

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