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

How Can I Resolve Hostname An Ip Address Bash Script



A ogni sistema in una rete TCP/IP viene assegnato un identificatore univoco noto come indirizzo IP che aiuta a collegarlo con altri sistemi della rete e su Internet. Tutti i siti Web a cui accedi su Internet hanno anche indirizzi IP univoci. Poiché è 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 in un indirizzo IP a cui si connette il browser o l'applicazione.

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







ping

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/nome di dominio di destinazione:



$pingtarget-host



Nslookup

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





$nslookup target-host

Ospite

Un altro host di utilità della riga 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 target-host

Voi

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

$tutarget-host +short

Script Bash per risolvere un nome host in un indirizzo IP

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

  1. Crea un file bash usando qualsiasi editor di testo. Qui userò l'editor Nano per creare uno script chiamato iplookup.sh .$sudo nanoscript.sh
  1. Copia e incolla le seguenti righe nel file di script. Nota che, qui in questo script, sto specificando il server DNS pubblico di Google per la ricerca IP. Puoi specificare qualsiasi altro server DNS in base al tuo ambiente.# Specifica il server DNS
    dnsserver='8.8.8.8'
    # funzione per ottenere l'indirizzo IP
    funzioneget_ipadr{
    indirizzo IP=''
    # Record A e AAA rispettivamente per IPv4 e IPv6
    # $1 sta per primo argomento
    Se [ -n '$ 1' ];poi
    Nome host='$ {1}'
    Se [ -Insieme a 'tipo_query' ];poi
    query_type='A'
    essere
    # usa il comando host per le operazioni di ricerca DNS
    ospite-T ${query_type} ${nome host} &> /sviluppo/nullo$ {server DNS}
    Se [ '$?' -eq '0' ];poi
    # ottenere l'indirizzo IP
    indirizzo IP='$(host -t ${query_type} ${hostname} ${dnsserver}| awk '/has.*address/{print $NF; exit}')'
    altro
    Uscita 1
    essere
    altro
    Uscita 2
    essere
    # display ip
    buttato fuori $indirizzo_ip
    }
    Nome host='$ {1}'
    perdomandain 'A-IPv4' 'AAAA-IPv6';fare
    query_type='$(printf $query | cut -d- -f 1)'
    ipversione='$(printf $query | cut -d- -f 2)'
    indirizzo='$(get_ipaddr ${hostname})'
    Se [ '$?' -eq '0' ];poi
    Se [ -n '${indirizzo}' ];poi
    buttato fuori 'Il${ipversion}indirizzo del nome host${nome host}è:$indirizzo'
    essere
    altro
    buttato fuori 'Si è verificato un errore'
    essere
    fatto
  2. Una volta fatto, usa Ctrl+O e Ctrl+X per salvare ed uscire rispettivamente dal file.
  3. Ora per trovare un indirizzo IP rispetto a un nome host/dominio mirato, esegui lo script utilizzando la seguente sintassi:$./script.sh host di destinazione

    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 quello che c'è da fare! In questo articolo, abbiamo imparato a risolvere il nome host in un indirizzo IPv4 e IPv6 utilizzando uno script bash. Abbiamo anche appreso alcuni altri strumenti da riga di comando come Ping, Nslookup, Host e Dig che possono essere utilizzati per eseguire una ricerca IP.