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 +shortScript Bash per risolvere un nome host in un indirizzo IP
Per utilizzare lo script bash per una ricerca IP, seguire i passaggi seguenti:
- Crea un file bash usando qualsiasi editor di testo. Qui userò l'editor Nano per creare uno script chiamato iplookup.sh .$sudo nanoscript.sh
- 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 - Una volta fatto, usa Ctrl+O e Ctrl+X per salvare ed uscire rispettivamente dal file.
- 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.comL'output sarebbe simile a questo:
Allo stesso modo, per risolvere l'indirizzo IP di yahoo.com, il comando sarebbe:
$./iplookup.sh yahoo.comL'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.