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 +shortBash 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:
- 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
- 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ý - Po dokončení použite súbor Ctrl+O a Ctrl+X na uloženie a ukončenie súboru.
- 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.comPodobne na vyriešenie IP adresy yahoo.com bude príkaz nasledujúci:
$./iplookup.sh yahoo.comTo 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.