Как я могу преобразовать имя хоста в 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-адрес целевого имени хоста / имени домена:



$пингцелевой хост



Nslookup

Nslookup широко используется для преобразования имени хоста в IP-адрес. Чтобы использовать эту команду для поиска IP, используйте следующий синтаксис:





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

Хозяин

Другой хост утилиты командной строки может использоваться для поиска IP-адреса по любому имени хоста / имени домена. Чтобы использовать эту команду, используйте следующий синтаксис:



$host target-host

Ты

Dig - еще один полезный инструмент командной строки, который используется для запроса различных записей, связанных с DNS. Его можно использовать для поиска IP-адреса по любому имени хоста / имени домена. Используйте команду Dig следующим образом, чтобы найти IP-адрес по конкретному имени хоста / имени домена.

$тыtarget-host + короткий

Сценарий Bash для преобразования имени хоста в IP-адрес

Чтобы использовать сценарий bash для поиска IP, выполните следующие действия:

  1. Создайте файл bash с помощью любого текстового редактора. Здесь я буду использовать редактор Nano для создания скрипта с именем iplookup.sh .$судо наноscript.sh
  1. Скопируйте и вставьте следующие строки в свой файл сценария. Обратите внимание, что здесь, в этом скрипте, я указываю общедоступный DNS-сервер Google для поиска IP. Вы можете указать любой другой DNS-сервер в соответствии с вашей средой.# Укажите DNS-сервер
    dnsserverзнак равно'8.8.8.8'
    # функция для получения IP-адреса
    функцияget_ipaddr{
    айпи адресзнак равно''
    # Запись A и AAA для IPv4 и IPv6 соответственно
    # $ 1 обозначает первый аргумент
    если [ -n '$ 1' ];тогда
    имя хостазнак равно'$ {1}'
    если [ -С участием 'тип_запроса' ];тогда
    query_typeзнак равно'К'
    быть
    # использовать команду хоста для операций поиска DNS
    хозяин-t $ {query_type} $ {hostname} &> /разработчик/нулевой$ {dnsserver}
    если [ '$?' -экв '0' ];тогда
    # получить IP-адрес
    айпи адресзнак равно'$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    еще
    выход 1
    быть
    еще
    выход 2
    быть
    # отображать ip
    выбросил $ ip_address
    }
    имя хостазнак равно'$ {1}'
    длязапросв 'A-IPv4' 'AAAA-IPv6';делать
    query_typeзнак равно'$ (printf $ query | вырезать -d- -f 1)'
    ipversionзнак равно'$ (printf $ query | вырезать -d- -f 2)'
    адресзнак равно'$ (get_ipaddr $ {hostname})'
    если [ '$?' -экв '0' ];тогда
    если [ -n '$ {адрес}' ];тогда
    выбросил '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.