In dit artikel leggen we uit hoe je een hostnaam/domeinnaam kunt omzetten naar een IPv4- en IPv6-adres in een Bash-script. Laten we echter, voordat we verder gaan met het maken van het script, enkele van de opdrachten bekijken die kunnen worden gebruikt om de hostnaam/domeinnaam om te zetten in een IP-adres.
Ping
Ping is de meest eenvoudige en ingebouwde tool die beschikbaar is op bijna alle besturingssystemen. Het wordt gebruikt om de bereikbaarheid van een host in een netwerk te verifiëren. We kunnen het echter ook gebruiken om het IP-adres te vinden tegen elke hostnaam/domeinnaam. Gebruik de volgende syntaxis om het IP-adres van een beoogde hostnaam/domeinnaam te vinden:
$pingdoel-host
Nslookup
Nslookup wordt veel gebruikt om de hostnaam om te zetten in een IP-adres. Gebruik de volgende syntaxis om deze opdracht te gebruiken voor een IP-lookup:
$nslookup doel-host
Gastheer
Een andere host voor een opdrachtregelprogramma kan worden gebruikt om het IP-adres te vinden voor elke hostnaam/domeinnaam. Gebruik de volgende syntaxis om deze opdracht te gebruiken:
$host doel-host
Jij
Dig is een ander handig opdrachtregelprogramma dat wordt gebruikt om verschillende DNS-gerelateerde records op te vragen. Het kan worden gebruikt om het IP-adres te vinden tegen elke hostnaam/domeinnaam. Gebruik de opdracht Dig op de volgende manier om een IP-adres te vinden voor een specifieke hostnaam/domeinnaam.
$jijdoel-host +kortBash-script om een hostnaam om te zetten in een IP-adres
Volg de onderstaande stappen om het bash-script te gebruiken voor een IP-lookup:
- Maak een bash-bestand met een willekeurige teksteditor. Hier zal ik de Nano-editor gebruiken om een script te maken met de naam iplookup.sh .$sudo nanoscript.sh
- Kopieer en plak de volgende regels in uw scriptbestand. Merk op dat ik hier in dit script de openbare DNS-server van Google specificeer voor IP-lookup. U kunt elke andere DNS-server specificeren volgens uw omgeving.# Specificeer DNS-server
DNS server='8.8.8.8'
# functie om IP-adres te krijgen
functieget_ipadr{
IP adres=''
# A- en AAA-record voor respectievelijk IPv4 en IPv6
# $1 staat voor eerste argument
indien [ -N '$ 1' ];dan
hostnaam='$ {1}'
indien [ -Met 'query_type' ];dan
query_type='TOT'
zijn
# gebruik host-opdracht voor DNS-opzoekbewerkingen
gastheer-t ${query_type} ${hostnaam} &> /dev/nul$ {dnsserver}
indien [ '$?' -eq '0' ];dan
# krijg ip-adres
IP adres='$(host -t ${query_type} ${hostname} ${dnsserver}| awk '/has.*address/{print $NF; exit}')'
anders
Uitgang 1
zijn
anders
Uitgang 2
zijn
# ip weergeven
gooide uit $ip_adres
}
hostnaam='$ {1}'
voorvraagin 'A-IPv4' 'AAA-IPv6';doen
query_type='$(printf $query | knippen -d- -f 1)'
ipversie='$(printf $query | knippen -d- -f 2)'
adres='$(get_ipaddr ${hostnaam})'
indien [ '$?' -eq '0' ];dan
indien [ -N '${adres}' ];dan
gooide uit 'De${ipversie}adres van de hostnaam${hostnaam}is:$adres'
zijn
anders
gooide uit 'Er is een fout opgetreden'
zijn
gedaan - Als u klaar bent, gebruikt u Ctrl+O en Ctrl+X om het bestand respectievelijk op te slaan en af te sluiten.
- Om nu een IP-adres tegen een gerichte hostnaam/domeinnaam te vinden, voert u het script uit met behulp van de volgende syntaxis:$./script.sh doel-host
Om bijvoorbeeld het IP-adres van google.com op te lossen, zou de opdracht zijn:
$./iplookup.sh google.comDe uitvoer zou als volgt zijn:
Evenzo, om het IP-adres van yahoo.com op te lossen, zou de opdracht zijn:
$./iplookup.sh yahoo.comDe uitvoer zou als volgt zijn:
Dat is alles! In dit artikel hebben we geleerd om de hostnaam om te zetten in een IPv4- en IPv6-adres met behulp van een bash-script. We hebben ook enkele andere opdrachtregelprogramma's geleerd, zoals Ping, Nslookup, Host en Dig, die kunnen worden gebruikt om een IP-zoekopdracht uit te voeren.