В этой статье мы объясним, как разрешить имя хоста / доменное имя в адрес 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, выполните следующие действия:
- Создайте файл bash с помощью любого текстового редактора. Здесь я буду использовать редактор Nano для создания скрипта с именем iplookup.sh .$судо наноscript.sh
- Скопируйте и вставьте следующие строки в свой файл сценария. Обратите внимание, что здесь, в этом скрипте, я указываю общедоступный 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}является:$ адрес'
быть
еще
выбросил 'Произошла ошибка'
быть
сделано - После этого используйте Ctrl + O и Ctrl + X для сохранения и выхода из файла соответственно.
- Теперь, чтобы найти 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.