Hur kan jag lösa ett värdnamn till en IP -adress i ett Bash -skript?

How Can I Resolve Hostname An Ip Address Bash Script



Varje system i ett TCP/IP -nätverk tilldelas en unik identifierare som kallas IP -adress som hjälper till att ansluta den till andra system på nätverket och över hela internet. Alla webbplatser du använder på internet har också unika IP -adresser. Eftersom det är svårt för alla att komma ihåg IP-adresserna på dessa webbplatser, kommer DNS-systemet som hjälper till att översätta dessa svårt att komma ihåg IP-adresser till mänskligt läsbara namn. Med DNS behöver du inte längre komma ihåg IP -adresserna. Istället måste du bara komma ihåg domännamnet och allt gjort. Faktiskt, på den backade, tar DNS -servern värdnamnet och löser det till en IP -adress som webbläsaren eller applikationen sedan ansluter till.

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 +kort

Bash -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:

  1. 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
  1. 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
  2. När du är klar använder du Ctrl+O och Ctrl+X för att spara respektive lämna filen.
  3. 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.com

    Utdata skulle likna detta:

    På samma sätt, för att lösa IP -adressen till yahoo.com, skulle kommandot vara:

    $./iplookup.sh yahoo.com

    Utdata skulle likna detta:

    Det ä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.