Как мога да разреша име на хост до IP адрес в скрипт на Bash?

How Can I Resolve Hostname An Ip Address Bash Script



На всяка система в TCP/IP мрежа се присвоява уникален идентификатор, известен като IP адрес, който помага да се свърже с друга система в мрежата и навсякъде в интернет. Всички уебсайтове, до които имате достъп в интернет, също имат уникални IP адреси. Тъй като за всички е трудно да запомнят IP адресите на тези уебсайтове, идва DNS системата, която помага да се преведат тези трудно запомнящи се IP адреси в имена, четими от човека. С DNS вече не е нужно да помните IP адресите. Вместо това просто трябва да запомните името на домейна и всичко готово. Всъщност, при подкрепеното, DNS сървърът приема името на хоста и го разрешава до IP адрес, с който браузърът или приложението след това се свързват.

В тази статия ще обясним как да разрешим име на хост/име на домейн до IPv4 и IPv6 адрес в скрипт на Bash. Въпреки това, преди да продължим към създаването на скрипта, нека разгледаме някои от командите, които могат да се използват за разрешаване на името на хоста/името на домейна до IP адрес.







Пинг

Ping е най-простият и вграден инструмент, който е наличен в почти всички операционни системи. Използва се за проверка на достъпността на хост в мрежа. Можем обаче да го използваме и за намиране на IP адреса срещу всяко име на хост/име на домейн. Използвайте следния синтаксис, за да намерите IP адреса на целево име на хост/име на домейн:



$пингtarget-host



Nslookup

Nslookup се използва широко за разрешаване на името на хоста до IP адрес. За да използвате тази команда за търсене на IP, използвайте следния синтаксис:





$nslookup целеви хост

Домакин

Друг хост на помощната програма от командния ред може да се използва за намиране на IP адрес срещу всяко име на хост/име на домейн. За да използвате тази команда, използвайте следния синтаксис:



$хост цел-хост

Вие

Dig е друг полезен инструмент от командния ред, който се използва за запитване на различни записи, свързани с DNS. Може да се използва за намиране на IP адрес срещу всяко име на хост/име на домейн. Използвайте командата Dig по следния начин, за да намерите IP адрес срещу конкретно име на хост/име на домейн.

$Виеtarget-host +short

Баш скрипт за разрешаване на име на хост до IP адрес

За да използвате bash скрипта за търсене на IP, следвайте стъпките по -долу:

  1. Създайте bash файл с всеки текстов редактор. Тук ще използвам Nano редактора, за да създам скрипт с име iplookup.sh .$sudo наноscript.sh
  1. Копирайте-поставете следните редове във вашия скриптов файл. Имайте предвид, че тук в този скрипт посочвам публичния DNS сървър на Google за търсене на IP. Можете да посочите всеки друг DNS сървър според вашата среда.# Посочете DNS сървър
    dnsserver='8.8.8.8'
    # функция за получаване на IP адрес
    функцияget_ipaddr{
    IP адрес=''
    # A и AAA запис съответно за IPv4 и IPv6
    # $ 1 означава първи аргумент
    ако [ „$ 1“ ];тогава
    име на хост='$ {1}'
    ако [ 'query_type' ];тогава
    query_type='ДА СЕ'
    бъда
    # използвайте командата host за операции за търсене на DNS
    домакин-T $ {query_type} $ {hostname} &> /dev/нула$ {dnsserver}
    ако [ '$?' -екв '0' ];тогава
    # вземете ip адрес
    IP адрес='$ (хост -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; изход}')'
    иначе
    изход 1
    бъда
    иначе
    изход 2
    бъда
    # дисплей ip
    изхвърлен $ ip_address
    }
    име на хост='$ {1}'
    зазапитванев „A-IPv4“ „AAAA-IPv6“;направете
    query_type='$ (printf $ query | cut -d- -f 1)'
    иверсия='$ (printf $ query | cut -d- -f 2)'
    адрес='$ (get_ipaddr $ {hostname})'
    ако [ '$?' -екв '0' ];тогава
    ако [ '$ {адрес}' ];тогава
    изхвърлен „The$ {ipversion}адрес на името на хоста$ {hostname}е:$ адрес'
    бъда
    иначе
    изхвърлен 'Възникна грешка'
    бъда
    Свършен
  2. След като приключите, използвайте Ctrl+O и Ctrl+X, за да запазите и излезете съответно от файла.
  3. Сега, за да намерите IP адрес срещу целево име на хост/име на домейн, стартирайте скрипта, използвайки следния синтаксис:$./script.sh целеви хост

    Например, за да разрешите IP адреса на google.com, командата ще бъде:

    $./iplookup.sh google.com

    Изходът ще бъде подобен на този:

    По подобен начин, за да разрешите IP адреса на yahoo.com, командата ще бъде:

    $./iplookup.sh yahoo.com

    Изходът ще бъде подобен на този:

    Това е всичко! В тази статия се научихме да разрешаваме името на хоста до IPv4 и IPv6 адрес, използвайки bash скрипт. Научихме и някои други инструменти на командния ред, като Ping, Nslookup, Host и Dig, които могат да се използват за извършване на IP търсене.