Jak mohu ve skriptu Bash přeložit název hostitele na adresu IP?

How Can I Resolve Hostname An Ip Address Bash Script



Každému systému v síti TCP/IP je přiřazen jedinečný identifikátor známý jako IP adresa, který jej pomáhá propojit s jiným systémem v síti a na celém internetu. Všechny webové stránky, na které přistupujete na internetu, mají také jedinečné IP adresy. Jelikož je pro každého obtížné zapamatovat si IP adresy těchto webových stránek, přichází systém DNS, který pomáhá přeložit tyto těžko zapamatovatelné IP adresy na jména čitelná lidmi. U DNS si již nemusíte pamatovat IP adresy. Místo toho si musíte jen zapamatovat název domény a vše hotovo. Ve skutečnosti server DNS na zálohovaném serveru převezme název hostitele a přeloží jej na adresu IP, ke které se poté připojí prohlížeč nebo aplikace.

V tomto článku vysvětlíme, jak vyřešit název hostitele/název domény na adresu IPv4 a IPv6 ve skriptu Bash. Než však přistoupíme k vytváření skriptu, podívejme se na některé příkazy, které lze použít k překladu názvu hostitele/názvu domény na IP adresu.







Ping

Ping je nejjednodušší a integrovaný nástroj, který je k dispozici téměř ve všech operačních systémech. Slouží k ověření dosažitelnosti hostitele v síti. Můžeme jej však také použít k nalezení IP adresy podle libovolného názvu hostitele/názvu domény. K vyhledání IP adresy cíleného názvu hostitele/názvu domény použijte následující syntaxi:



$pingcílový hostitel



Nslookup

Nslookup je široce používán k překladu názvu hostitele na IP adresu. Chcete -li použít tento příkaz pro vyhledávání IP, použijte následující syntaxi:





$nslookup cílový hostitel

Hostitel

K vyhledání adresy IP podle libovolného názvu hostitele/názvu domény lze použít jiného hostitele obslužného programu příkazového řádku. Chcete -li použít tento příkaz, použijte následující syntaxi:



$host target-host

Vy

Dig je další užitečný nástroj příkazového řádku, který se používá k dotazování různých záznamů souvisejících s DNS. Lze jej použít k vyhledání adresy IP podle libovolného názvu hostitele/názvu domény. Použijte příkaz Dig následujícím způsobem k nalezení IP adresy proti konkrétnímu názvu hostitele/názvu domény.

$vytarget-host +short

Bash skript k překladu názvu hostitele na IP adresu

Chcete -li použít skript bash pro vyhledávání IP, postupujte podle následujících kroků:

  1. Vytvořte soubor bash pomocí libovolného textového editoru. Zde budu používat editor Nano k vytvoření skriptu s názvem iplookup.sh .$sudo nanoscript.sh
  1. Zkopírujte a vložte následující řádky do souboru skriptu. Všimněte si, že zde v tomto skriptu určuji veřejný server DNS společnosti Google pro vyhledávání IP. Můžete zadat jakýkoli jiný server DNS podle vašeho prostředí.# Zadejte server DNS
    dnsserver='8.8.8.8'
    # funkce pro získání IP adresy
    funkceget_ipaddr{
    IP adresa=''
    # A a AAA záznam pro IPv4, respektive IPv6
    # $ 1 znamená první argument
    -li [ -n '$ 1' ];pak
    jméno hostitele='$ {1}'
    -li [ -S 'query_type' ];pak
    query_type='NA'
    být
    # použijte hostitelský příkaz pro operace vyhledávání DNS
    hostitel-t $ {query_type} $ {hostname} &> /dev/nula$ {dnsserver}
    -li [ '$?' -ekv '0' ];pak
    # získejte IP adresu
    IP adresa='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    jiný
    výstup 1
    být
    jiný
    výstup 2
    být
    # zobrazit ip
    vyhodil $ ip_adresa
    }
    jméno hostitele='$ {1}'
    prodotazv 'A-IPv4' 'AAAA-IPv6';dělat
    query_type='$ (printf $ query | cut -d- -f 1)'
    ipversion='$ (printf $ query | cut -d- -f 2)'
    adresa='$ (get_ipaddr $ {hostname})'
    -li [ '$?' -ekv '0' ];pak
    -li [ -n '$ {adresa}' ];pak
    vyhodil 'The$ {ipversion}adresa Hostname$ {hostname}je:$ adresa'
    být
    jiný
    vyhodil 'Vyskytla se chyba'
    být
    Hotovo
  2. Až budete hotovi, použijte Ctrl+O a Ctrl+X k uložení a ukončení souboru.
  3. Chcete -li nyní najít IP adresu proti cílenému názvu hostitele/názvu domény, spusťte skript pomocí následující syntaxe:$./script.sh cílový hostitel

    Chcete -li například vyřešit IP adresu google.com, příkaz by byl:

    $./iplookup.sh google.com

    Výstup by byl podobný tomuto:

    Podobně pro vyřešení IP adresy yahoo.com bude příkaz:

    $./iplookup.sh yahoo.com

    Výstup by byl podobný tomuto:

    To je vše, co k tomu patří! V tomto článku jsme se naučili přeložit název hostitele na adresu IPv4 a IPv6 pomocí skriptu bash. Naučili jsme se také některé další nástroje příkazového řádku, jako jsou Ping, Nslookup, Host a Dig, které lze použít k vyhledávání IP.