Hvordan kan jeg løse et vertsnavn til en IP -adresse i et Bash -skript?

How Can I Resolve Hostname An Ip Address Bash Script



Hvert system i et TCP/IP -nettverk er tildelt en unik identifikator kjent som IP -adresse som hjelper til med å koble det til et annet system på nettverket og over hele internett. Alle nettstedene du får tilgang til på internett har også unike IP -adresser. Siden det er vanskelig for alle å huske IP-adressene til disse nettstedene, kommer DNS-systemet som hjelper til med å oversette disse vanskelig å huske IP-adressene til lesbare navn. Med DNS trenger du ikke lenger å huske IP -adressene. I stedet må du bare huske domenenavnet og alt er gjort. Faktisk, på den støttede siden, tar DNS -serveren vertsnavnet og løser det til en IP -adresse som nettleseren eller programmet deretter kobles til.

I denne artikkelen vil vi forklare hvordan du løser et vertsnavn/domenenavn til en IPv4- og IPv6 -adresse i et Bash -skript. Imidlertid, før vi fortsetter med å lage skriptet, la oss se på noen av kommandoene som kan brukes til å løse vertsnavnet/domenenavnet til en IP -adresse.







Ping

Ping er det mest enkle og innebygde verktøyet som er tilgjengelig på nesten alle operativsystemer. Den brukes til å kontrollere tilgjengeligheten til en vert i et nettverk. Imidlertid kan vi også bruke den til å finne IP -adressen mot ethvert vertsnavn/domenenavn. Bruk følgende syntaks for å finne IP -adressen til et målrettet vertsnavn/domenenavn:



$pingmål-vert



Nslookup

Nslookup er mye brukt for å løse vertsnavnet til en IP -adresse. For å bruke denne kommandoen til et IP -oppslag, bruker du følgende syntaks:





$nslookup mål-vert

Vert

En annen kommandolinjeverktøyvert kan brukes til å finne IP-adresse mot ethvert vertsnavn/domenenavn. For å bruke denne kommandoen, bruk følgende syntaks:



$vert mål-vert

Du

Dig er et annet nyttig kommandolinjeverktøy som brukes til å spørre forskjellige DNS -relaterte poster. Den kan brukes til å finne IP -adresse mot ethvert vertsnavn/domenenavn. Bruk Dig -kommandoen på følgende måte for å finne en IP -adresse mot et bestemt vertsnavn/domenenavn.

$dumål-vert +kort

Bash -skript for å løse et vertsnavn til en IP -adresse

For å bruke bash -skriptet for et IP -oppslag, følg trinnene nedenfor:

  1. Lag en bash -fil ved hjelp av en hvilken som helst tekstredigerer. Her skal jeg bruke Nano -editoren til å lage et skript med navn iplookup.sh .$sudo nanoscript.sh
  1. Kopier og lim inn følgende linjer i skriptfilen. Vær oppmerksom på at her i dette skriptet spesifiserer jeg Googles offentlige DNS -server for IP -oppslag. Du kan angi hvilken som helst annen DNS -server i henhold til ditt miljø.# Spesifiser DNS -server
    dnsserver='8.8.8.8'
    # funksjon for å få IP -adresse
    funksjonget_ipaddr{
    IP adresse=''
    # A- og AAA -post for henholdsvis IPv4 og IPv6
    # $ 1 står for første argument
    hvis [ -n '$ 1' ];deretter
    vertsnavn='$ {1}'
    hvis [ -Med 'query_type' ];deretter
    query_type='TIL'
    være
    # bruk vertskommando for DNS -oppslagsoperasjoner
    vert-t $ {query_type} $ {hostname} &> /dev/null$ {dnsserver}
    hvis [ '$?' -ekv '0' ];deretter
    # få ip -adresse
    IP adresse='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    ellers
    exit 1
    være
    ellers
    exit 2
    være
    # display ip
    kastet ut $ ip_adresse
    }
    vertsnavn='$ {1}'
    tilspørsmåli 'A-IPv4' 'AAAA-IPv6';gjøre
    query_type='$ (printf $ query | cut -d- -f 1)'
    ipversjon='$ (printf $ query | cut -d- -f 2)'
    adresse='$ (get_ipaddr $ {hostname})'
    hvis [ '$?' -ekv '0' ];deretter
    hvis [ -n '$ {address}' ];deretter
    kastet ut 'De$ {ipversion}adressen til vertsnavnet$ {hostname}er:$ adresse'
    være
    ellers
    kastet ut 'En feil oppstod'
    være
    gjort
  2. Når du er ferdig, bruker du Ctrl+O og Ctrl+X for å lagre og avslutte filen.
  3. For å finne en IP -adresse mot et målrettet vertsnavn/domenenavn, kjør skriptet ved å bruke følgende syntaks:$./script.sh mål-vert

    For eksempel, for å løse IP -adressen til google.com, vil kommandoen være:

    $./iplookup.sh google.com

    Utgangen vil være lik denne:

    På samme måte, for å løse IP -adressen til yahoo.com, vil kommandoen være:

    $./iplookup.sh yahoo.com

    Utgangen vil være lik denne:

    Det er alt det er! I denne artikkelen har vi lært å løse vertsnavnet til en IPv4- og IPv6 -adresse ved hjelp av et bash -skript. Vi lærte også noen andre kommandolinjeverktøy som Ping, Nslookup, Host og Dig som kan brukes til å utføre et IP-oppslag.