Paano ko malulutas ang isang hostname sa isang IP address sa isang Bash script?

How Can I Resolve Hostname An Ip Address Bash Script



Ang bawat system sa isang network ng TCP / IP ay nakatalaga sa isang natatanging identifier na kilala bilang IP address na makakatulong upang ikonekta ito sa ibang system o sa network at sa buong internet. Ang lahat ng mga website na na-access mo sa internet ay mayroon ding natatanging mga IP address. Dahil mahirap tandaan ng lahat ang mga IP address ng mga website, dumarating ang DNS system na makakatulong upang maisalin ang mga mahirap tandaan na mga IP address sa mga nabasang pangalan ng tao. Sa DNS, hindi mo na kailangang tandaan ang mga IP address. Sa halip, kailangan mo lamang tandaan ang pangalan ng domain at lahat ng tapos na. Sa totoo lang, sa sinusuportahan, kinukuha ng DNS server ang hostname at nalulutas ito sa isang IP address kung saan kumonekta ang browser o application pagkatapos.

Sa artikulong ito, ipaliwanag namin kung paano lutasin ang isang hostname / domain name sa isang IPv4 at IPv6 address sa isang Bash script. Gayunpaman, bago magpatuloy patungo sa paglikha ng script, suriin natin ang ilan sa mga utos na maaaring magamit upang malutas ang hostname / domain name sa isang IP address.







Ping

Ang ping ay ang pinaka-simple at built-in na tool na magagamit sa halos lahat ng mga operating system. Ginagamit ito upang i-verify ang kakayahang maabot ng isang host sa isang network. Gayunpaman, maaari din namin itong magamit upang mahanap ang IP address laban sa anumang hostname / domain name. Gamitin ang sumusunod na syntax upang mahanap ang IP address ng isang naka-target na hostname / domain name:



$pingtarget-host



Nslookup

Malawakang ginagamit ang Nslookup upang malutas ang hostname sa isang IP address. Upang magamit ang utos na ito para sa isang paghahanap sa IP, gamitin ang sumusunod na syntax:





$nslookup target-host

Host

Ang isa pang host ng command-line utility ay maaaring magamit upang makahanap ng IP address laban sa anumang hostname / domain name. Upang magamit ang utos na ito, gamitin ang sumusunod na syntax:



$target-host ng host

Ikaw

Ang Dig ay isa pang kapaki-pakinabang na tool ng linya ng utos na ginagamit upang magtanong ng iba't ibang mga talaang nauugnay sa DNS. Maaari itong magamit upang makahanap ng IP address laban sa anumang hostname / domain name. Gumamit ng Dig command sa sumusunod na paraan upang makahanap ng isang IP address laban sa isang tukoy na hostname / domain name.

$ikawtarget-host + maikli

Bash script upang malutas ang isang hostname sa isang IP address

Upang magamit ang bash script para sa isang paghahanap sa IP, sundin ang mga hakbang sa ibaba:

  1. Lumikha ng isang bash file gamit ang anumang text editor. Dito ko gagamitin ang Nano editor upang lumikha ng isang script na pinangalanan iplookup.sh .$sudo nanoscript.sh
  1. Kopyahin-i-paste ang mga sumusunod na linya sa iyong file ng script. Tandaan na, dito sa script na ito, tinutukoy ko ang pampublikong DNS server ng Google para sa paghahanap sa IP. Maaari mong tukuyin ang anumang iba pang mga DNS server ayon sa iyong kapaligiran.# Tukuyin ang DNS server
    dnsserver='8.8.8.8'
    # pagpapaandar upang makakuha ng IP address
    pagpapaandarget_ipaddr{
    IP address='
    Ang tala ng # A at AAA para sa IPv4 at IPv6, ayon sa pagkakabanggit
    Ang # $ 1 ay nangangahulugang unang pagtatalo
    kung [ -n '$ 1' ];tapos
    hostname='$ {1}'
    kung [ -Nga 'query_type' ];tapos
    query_type='TO'
    maging
    # Gumamit ng host command para sa mga pagpapatakbo ng paghahanap ng DNS
    host-t $ {query_type} $ {hostname} &> /dev/wala$ {dnsserver}
    kung [ '$?' -eq '0' ];tapos
    # kumuha ng ip address
    IP address='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    iba pa
    labasan 1
    maging
    iba pa
    labasan 2
    maging
    # display ip
    itinapon $ ip_address
    }
    hostname='$ {1}'
    para satanongsa 'A-IPv4' 'AAAA-IPv6';gawin
    query_type='$ (printf $ query | cut -d- -f 1)'
    ipversion='$ (printf $ query | cut -d- -f 2)'
    address='$ (get_ipaddr $ {hostname})'
    kung [ '$?' -eq '0' ];tapos
    kung [ -n '$ {address}' ];tapos
    itinapon 'Ang$ {ipversion}adress ng Hostname$ {hostname}ay:$ address'
    maging
    iba pa
    itinapon 'May pagkakamaling naganap'
    maging
    tapos na
  2. Kapag tapos na, gamitin ang Ctrl + O at Ctrl + X upang mai-save at lumabas sa file ayon sa pagkakabanggit.
  3. Ngayon upang makahanap ng isang IP address laban sa isang naka-target na hostname / domain name, patakbuhin ang script gamit ang sumusunod na syntax:$./script.sh target-host

    Halimbawa, upang malutas ang IP address ng google.com, ang utos ay:

    $./iplookup.sh google.com

    Ang output ay magiging katulad nito:

    Katulad nito, upang malutas ang IP address ng yahoo.com, ang utos ay:

    $./iplookup.sh yahoo.com

    Ang output ay magiging katulad nito:

    Iyon lang ang mayroon dito! Sa artikulong ito, natutunan naming lutasin ang hostname sa isang IPv4 at IPv6 address gamit ang isang bash script. Nalaman din namin ang ilang iba pang mga tool sa command-line tulad ng Ping, Nslookup, Host, at Dig na maaaring magamit upang magsagawa ng isang IP lookup.