Поиск по сайту:

Как преобразовать имя хоста в IP-адрес в сценарии Bash?


Каждой системе в сети TCP/IP назначается уникальный идентификатор, известный как IP-адрес, который помогает соединить ее с другой системой в сети и во всем Интернете. Все веб-сайты, к которым вы обращаетесь в Интернете, также имеют уникальные IP-адреса. Поскольку всем трудно запомнить IP-адреса этих веб-сайтов, появляется система DNS, которая помогает переводить эти трудно запоминающиеся IP-адреса в удобочитаемые имена. С DNS вам больше не нужно запоминать IP-адреса. Вместо этого вам нужно просто запомнить доменное имя и все готово. На самом деле, DNS-сервер берет имя хоста и преобразует его в IP-адрес, к которому затем подключается браузер или приложение.

В этой статье мы объясним, как преобразовать имя хоста/доменное имя в адрес IPv4 и IPv6 в сценарии Bash. Однако, прежде чем приступить к созданию сценария, давайте рассмотрим некоторые команды, которые можно использовать для преобразования имени хоста/домена в IP-адрес.

пинг

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

$ ping target-host

Nslookup

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

$ nslookup target-host

Хозяин

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

$ host target-host

Копать

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

$ dig target-host +short

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

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

  1. Create a bash file using any text editor. Here I will be using the Nano editor to create a script named “iplookup.sh”.
    $ sudo nano script.sh
  1. Copy-paste the following lines in your script file. Note that, here in this script, I am specifying Google’s public DNS server for IP lookup. You can specify any other DNS server as per your environment.
    # Specify DNS server
    dnsserver="8.8.8.8"
    # function to get IP address
    function get_ipaddr {
      ip_address=""
        # A and AAA record for IPv4 and IPv6, respectively
        # $1 stands for first argument
      if [ -n "$1" ]; then
        hostname="${1}"
        if [ -z "query_type" ]; then
          query_type="A"
        fi
        # use host command for DNS lookup operations
        host -t ${query_type}  ${hostname} &>/dev/null ${dnsserver}
        if [ "$?" -eq "0" ]; then
          # get ip address
          ip_address="$(host -t ${query_type} ${hostname} ${dnsserver}| awk '/has.*address/{print $NF; exit}')"
        else
          exit 1
        fi
      else
        exit 2
      fi
    # display ip
     echo $ip_address
    }
    hostname="${1}"
    for query in "A-IPv4" "AAAA-IPv6"; do
      query_type="$(printf $query | cut -d- -f 1)"
      ipversion="$(printf $query | cut -d- -f 2)"
      address="$(get_ipaddr ${hostname})"
      if [ "$?" -eq "0" ]; then
        if [ -n "${address}" ]; then
        echo "The ${ipversion} adress of the Hostname ${hostname} is: $address"
        fi
      else
        echo "An error occurred"
      fi
    done
  2. После этого используйте Ctrl+O и Ctrl+X, чтобы сохранить и выйти из файла соответственно.

Статьи по данной тематике: