Come posso risolvere un nome host a un indirizzo IP in uno script bash?

Come posso risolvere un nome host a un indirizzo IP in uno script bash?
A ogni sistema in una rete TCP/IP viene assegnato a un identificatore univoco noto come indirizzo IP che aiuta a collegarlo ad altri sistemi o sulla rete e su Internet. Tutti i siti Web accessi su Internet hanno anche indirizzi IP univoci. Dato che è difficile per tutti ricordare gli indirizzi IP di questi siti Web, arriva il sistema DNS che aiuta a tradurre questi indirizzi IP difficili da ricordare in nomi leggibili dall'uomo. Con DNS, non devi più ricordare gli indirizzi IP. Invece, devi solo ricordare il nome di dominio e tutto fatto. In realtà, sul supporto, il server DNS prende il nome host e lo risolve a un indirizzo IP a cui si collega il browser o l'applicazione.

In questo articolo, spiegheremo come risolvere un nome host/dominio a un indirizzo IPv4 e IPv6 in uno script bash. Tuttavia, prima di procedere verso la creazione dello script, esaminiamo alcuni dei comandi che possono essere utilizzati per risolvere il nome host/dominio su un indirizzo IP.

Ping

Il ping è lo strumento più semplice e integrato disponibile su quasi tutti i sistemi operativi. Viene utilizzato per verificare la raggiungibilità di un host in una rete. Tuttavia, possiamo anche usarlo per trovare l'indirizzo IP rispetto a qualsiasi nome host/nome di dominio. Utilizzare la seguente sintassi per trovare l'indirizzo IP di un nome host/dominio mirato:

$ ping target-host

Nslookup

Nslookup è ampiamente utilizzato per risolvere il nome host su un indirizzo IP. Per utilizzare questo comando per una ricerca IP, utilizzare la seguente sintassi:

$ nslookup target-host

Ospite

Un altro "host" dell'utilità della linea di comando può essere utilizzato per trovare l'indirizzo IP rispetto a qualsiasi nome host/nome di dominio. Per utilizzare questo comando, utilizzare la seguente sintassi:

$ host host host

Scavare

Dig è un altro utile strumento di riga di comando che viene utilizzato per interrogare vari record relativi al DNS. Può essere utilizzato per trovare l'indirizzo IP rispetto a qualsiasi nome host/nome di dominio. Usa il comando Dig nel modo seguente per trovare un indirizzo IP rispetto a un nome host/dominio specifico.

$ dig dar target-host +short

Bash Script per risolvere un nome host a un indirizzo IP

Per utilizzare lo script bash per una ricerca IP, seguire i passaggi seguenti:

  1. Crea un file bash utilizzando qualsiasi editor di testo. Qui userò l'Editor Nano per creare uno script chiamato "iplookup.sh".
    $ sudo nano script.sh
  1. Copia incolla le seguenti righe nel tuo file di script. Nota che, qui in questo script, sto specificando il server DNS pubblico di Google per la ricerca IP. È possibile specificare qualsiasi altro server DNS secondo il tuo ambiente.
    # Specifica il server DNS
    dnsserver = "8.8.8.8 "
    # Funzione per ottenere l'indirizzo IP
    funzione get_ipaddr
    ip_address = ""
    # A e AAA Record per IPv4 e IPv6, rispettivamente
    # $ 1 sta per il primo argomento
    if [-n "$ 1"]; Poi
    hostname = "$ 1"
    if [-z "query_type"]; Poi
    query_type = "a"
    fi
    # Usa il comando host per le operazioni di ricerca DNS
    host -t $ query_type $ hostname &>/dev/null $ dnsserver
    Se ["$?"-eq" 0 "]; allora
    # Ottieni indirizzo IP
    ip_address = "$ (host -t $ query_type $ hostname $ dnsserver | awk '/ha.*indirizzo/print $ nf; Uscita')"
    altro
    Uscita 1
    fi
    altro
    Uscita 2
    fi
    # Visualizza IP
    echo $ ip_address

    hostname = "$ 1"
    per query in "A-IPv4" "AAAA-IPV6"; Fare
    query_type = "$ (printf $ query | taglio -d- -f 1)"
    ipversion = "$ (printf $ query | cut -d- 2)"
    indirizzo = "$ (get_ipaddr $ hostname"
    Se ["$?"-eq" 0 "]; allora
    if [-n "$ indirizzo"]; Poi
    Echo "The $ iPversion IndiRism of the Hostname $ hostname è: $ indirizzo"
    fi
    altro
    Echo "si è verificato un errore"
    fi
    Fatto
  2. Una volta fatto, utilizzare CTRL+O e CTRL+X per salvare ed uscire dal file rispettivamente.
  3. Ora per trovare un indirizzo IP contro un nome host/dominio mirato, eseguire lo script usando la seguente sintassi:
    $ ./script.SH Target-host

    Ad esempio, per risolvere l'indirizzo IP di "Google.com ", il comando sarebbe:

    $ ./iplookup.Sh Google.com

    L'output sarebbe simile a questo:

    Allo stesso modo, per risolvere l'indirizzo IP di "Yahoo.com ", il comando sarebbe:

    $ ./iplookup.sh yahoo.com

    L'output sarebbe simile a questo:

    Questo è tutto ciò che c'è! In questo articolo, abbiamo imparato a risolvere il nome host su un indirizzo IPv4 e IPv6 utilizzando uno script bash. Abbiamo anche imparato alcuni altri strumenti di comando come ping, nslookup, host e dig che possono essere utilizzati per eseguire una ricerca IP.