I den här artikeln kommer vi att förklara hur man löser ett värdnamn/domännamn till en IPv4- och IPv6 -adress i ett Bash -skript. Innan vi fortsätter att skapa skriptet, låt oss granska några av kommandona som kan användas för att lösa värdnamnet/domännamnet till en IP -adress.
Ping
Ping är det mest enkla och inbyggda verktyget som finns på nästan alla operativsystem. Den används för att verifiera att en värd i ett nätverk kan nås. Men vi kan också använda den för att hitta IP -adressen mot alla värdnamn/domännamn. Använd följande syntax för att hitta IP -adressen för ett riktat värdnamn/domännamn:
$pingmål-värd
Nslookup
Nslookup används ofta för att lösa värdnamnet till en IP -adress. För att använda det här kommandot för en IP -sökning, använd följande syntax:
$nslookup target-host
Värd
En annan kommandoradsverktygsvärd kan användas för att hitta IP-adress mot alla värdnamn/domännamn. För att använda det här kommandot, använd följande syntax:
$värd mål-värd
Dig
Dig är ett annat användbart kommandoradsverktyg som används för att fråga efter olika DNS -relaterade poster. Den kan användas för att hitta IP -adress mot alla värdnamn/domännamn. Använd kommandot Dig på följande sätt för att hitta en IP -adress mot ett specifikt värdnamn/domännamn.
$digmål-värd +kortBash -skript för att lösa ett värdnamn till en IP -adress
För att använda bash -skriptet för en IP -sökning, följ stegen nedan:
- Skapa en bash -fil med valfri textredigerare. Här kommer jag att använda Nano -redigeraren för att skapa ett skript med namnet iplookup.sh .$sudo nanoscript.sh
- Kopiera och klistra in följande rader i skriptfilen. Observera att här i det här skriptet specificerar jag Googles offentliga DNS -server för IP -sökning. Du kan ange vilken annan DNS -server som helst enligt din miljö.# Ange DNS -server
dnsserver='8.8.8.8'
# funktion för att få IP -adress
fungeraget_ipaddr{
IP-adress=''
# A- och AAA -post för IPv4 respektive IPv6
# $ 1 står för första argumentet
om [ -n '$ 1' ];sedan
värdnamn='$ {1}'
om [ -Med 'query_type' ];sedan
fråga_typ='TILL'
vara
# använd värdkommando för DNS -uppslag
värd-t $ {query_type} $ {hostname} &> /dev/null${dnsserver}
om [ '$?' -ekv '0' ];sedan
# få ip -adress
IP-adress='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
annan
utgång 1
vara
annan
utgång 2
vara
# display ip
kastade ut $ ip_adress
}
värdnamn='$ {1}'
förfrågai 'A-IPv4' 'AAAA-IPv6';do
fråga_typ='$ (printf $ fråga | klipp -d- -f 1)'
ipversion='$ (printf $ fråga | klipp -d- -f 2)'
adress='$ (get_ipaddr $ {hostname})'
om [ '$?' -ekv '0' ];sedan
om [ -n '$ {address}' ];sedan
kastade ut 'De$ {ipversion}adressen till värdnamnet$ {hostname}är:$ -adress'
vara
annan
kastade ut 'Ett fel uppstod'
vara
Gjort - När du är klar använder du Ctrl+O och Ctrl+X för att spara respektive lämna filen.
- Nu för att hitta en IP -adress mot ett riktat värdnamn/domännamn kör du skriptet med följande syntax:$./script.sh mål-värd
Till exempel, för att lösa IP -adressen för google.com, skulle kommandot vara:
$./iplookup.sh google.comPå samma sätt, för att lösa IP -adressen till yahoo.com, skulle kommandot vara:
$./iplookup.sh yahoo.comDet är allt som finns! I den här artikeln har vi lärt oss att lösa värdnamnet till en IPv4- och IPv6 -adress med ett bash -skript. Vi lärde oss också några andra kommandoradsverktyg som Ping, Nslookup, Host och Dig som kan användas för att utföra en IP-sökning.