Ako môžem v skripte Bash preložiť názov hostiteľa na adresu IP?

How Can I Resolve Hostname An Ip Address Bash Script



Každý systém v sieti TCP/IP má priradený jedinečný identifikátor známy ako IP adresa, ktorý ho pomáha prepojiť s iným systémom v sieti a na celom internete. Všetky webové stránky, na ktoré pristupujete na internete, majú tiež jedinečné adresy IP. Pretože je pre každého ťažké zapamätať si adresy IP týchto webových stránok, prichádza systém DNS, ktorý pomáha preložiť tieto ťažko zapamätateľné adresy IP na názvy čitateľné pre ľudí. Pri DNS si už nemusíte pamätať IP adresy. Namiesto toho si musíte pamätať názov domény a všetko hotovo. Server DNS v skutočnosti prevezme názov hostiteľa a vyrieši ho na adresu IP, ku ktorej sa potom prehliadač alebo aplikácia pripojí.

V tomto článku vysvetlíme, ako vyriešiť názov hostiteľa/názov domény na adresu IPv4 a IPv6 v skripte Bash. Predtým, ako sa pustíme do vytvárania skriptu, si však prečítajme niektoré z príkazov, ktoré je možné použiť na preklad názvu hostiteľa/názvu domény na adresu IP.







Ping

Ping je najjednoduchší a vstavaný nástroj, ktorý je k dispozícii takmer vo všetkých operačných systémoch. Slúži na overenie dosiahnuteľnosti hostiteľa v sieti. Môžeme ho však použiť aj na nájdenie adresy IP voči ľubovoľnému názvu hostiteľa/názvu domény. Na vyhľadanie adresy IP cieleného názvu hostiteľa/názvu domény použite nasledujúcu syntax:



$pingcieľový hostiteľ



Nslookup

Nslookup sa široko používa na preklad názvu hostiteľa na adresu IP. Ak chcete použiť tento príkaz na vyhľadávanie IP, použite nasledujúcu syntax:





$nslookup cieľový hostiteľ

Hostiteľ

Na vyhľadanie adresy IP voči ľubovoľnému názvu hostiteľa/názvu domény možno použiť iného hostiteľa obslužného programu príkazového riadka. Ak chcete použiť tento príkaz, použite nasledujúcu syntax:



$host target-host

Vy

Dig je ďalší užitočný nástroj príkazového riadka, ktorý sa používa na dopytovanie rôznych záznamov súvisiacich s DNS. Môže sa použiť na nájdenie adresy IP podľa akéhokoľvek názvu hostiteľa/názvu domény. Nasledujúcim spôsobom použite príkaz Dig na vyhľadanie adresy IP proti konkrétnemu názvu hostiteľa/názvu domény.

$tytarget-host +short

Bash skript na preklad názvu hostiteľa na adresu IP

Ak chcete použiť bash skript na vyhľadávanie IP, postupujte podľa nasledujúcich krokov:

  1. Vytvorte súbor bash pomocou ľubovoľného textového editora. Tu budem používať editor Nano na vytvorenie skriptu s názvom iplookup.sh .$sudo nanoscript.sh
  1. Skopírujte a prilepte nasledujúce riadky do súboru skriptu. Všimnite si, že tu v tomto skripte určujem verejný server DNS spoločnosti Google na vyhľadávanie IP. Môžete zadať akýkoľvek iný server DNS podľa vášho prostredia.# Zadajte server DNS
    dnsserver=„8.8.8.8“
    # funkcia na získanie IP adresy
    funkciuget_ipaddr{
    IP adresa=''
    # A a AAA záznam pre IPv4, respektíve IPv6
    # $ 1 znamená prvý argument
    keby [ -n '1 $' ];potom
    meno hosťa='{1} $'
    keby [ -S 'query_type' ];potom
    query_type='TO'
    byť
    # použite príkaz hostiteľa na operácie vyhľadávania DNS
    hostiteľ-t $ {query_type} $ {hostname} &> /dev/nulový$ {dnsserver}
    keby [ '$?' -ekv '0' ];potom
    # získať IP adresu
    IP adresa='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    inak
    východ 1
    byť
    inak
    východ 2
    byť
    # zobraziť ip
    zahodil $ ip_adresa
    }
    meno hosťa='{1} $'
    predopytv „A-IPv4“ „AAAA-IPv6“;urobiť
    query_type='$ (printf $ query | cut -d- -f 1)'
    ipversion='$ (printf $ query | cut -d- -f 2)'
    adresa='$ (get_ipaddr $ {hostname})'
    keby [ '$?' -ekv '0' ];potom
    keby [ -n '$ {adresa}' ];potom
    zahodil 'The$ {ipversion}adresa hostiteľského mena$ {hostname}je:$ adresa'
    byť
    inak
    zahodil 'Nastala chyba'
    byť
    hotový
  2. Po dokončení použite súbor Ctrl+O a Ctrl+X na uloženie a ukončenie súboru.
  3. Teraz, aby ste našli adresu IP voči cielenému názvu hostiteľa/názvu domény, spustite skript pomocou nasledujúcej syntaxe:$./script.sh cieľový hostiteľ

    Ak napríklad chcete vyriešiť IP adresu google.com, príkaz by bol:

    $./iplookup.sh google.com

    Výstup by bol podobný tomuto:

    Podobne na vyriešenie IP adresy yahoo.com bude príkaz nasledujúci:

    $./iplookup.sh yahoo.com

    Výstup by bol podobný tomuto:

    To je všetko, čo k tomu patrí! V tomto článku sme sa naučili prekladať názov hostiteľa na adresu IPv4 a IPv6 pomocou skriptu bash. Dozvedeli sme sa tiež niekoľko ďalších nástrojov príkazového riadka, ako sú Ping, Nslookup, Host a Dig, ktoré je možné použiť na vyhľadávanie IP.