Как преобразовать имя хоста в IP-адрес в сценарии Bash?
Каждой системе в сети TCP/IP назначается уникальный идентификатор, известный как IP-адрес, который помогает соединить ее с другой системой в сети и во всем Интернете. Все веб-сайты, к которым вы обращаетесь в Интернете, также имеют уникальные IP-адреса. Поскольку всем трудно запомнить IP-адреса этих веб-сайтов, появляется система DNS, которая помогает переводить эти трудно запоминающиеся IP-адреса в удобочитаемые имена. С DNS вам больше не нужно запоминать IP-адреса. Вместо этого вам нужно просто запомнить доменное имя и все готово. На самом деле, DNS-сервер берет имя хоста и преобразует его в IP-адрес, к которому затем подключается браузер или приложение.
В этой статье мы объясним, как преобразовать имя хоста/доменное имя в адрес IPv4 и IPv6 в сценарии Bash. Однако, прежде чем приступить к созданию сценария, давайте рассмотрим некоторые команды, которые можно использовать для преобразования имени хоста/домена в IP-адрес.
пинг
Ping — самый простой и встроенный инструмент, доступный практически во всех операционных системах. Он используется для проверки доступности хоста в сети. Однако мы также можем использовать его для поиска IP-адреса по любому имени хоста/домену. Используйте следующий синтаксис, чтобы найти IP-адрес целевого имени хоста/доменного имени:
Nslookup
Nslookup широко используется для преобразования имени хоста в IP-адрес. Чтобы использовать эту команду для поиска IP, используйте следующий синтаксис:
Хозяин
Другая утилита командной строки «host» может использоваться для поиска IP-адреса по любому имени хоста/домену. Чтобы использовать эту команду, используйте следующий синтаксис:
Копать
Dig — еще один полезный инструмент командной строки, который используется для запроса различных записей, связанных с DNS. Его можно использовать для поиска IP-адреса по любому имени хоста/домену. Используйте команду Dig следующим образом, чтобы найти IP-адрес для определенного имени хоста/доменного имени.
Сценарий Bash для преобразования имени хоста в IP-адрес
Чтобы использовать сценарий bash для поиска IP-адресов, выполните следующие действия:
- 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
- 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 После этого используйте Ctrl+O и Ctrl+X, чтобы сохранить и выйти из файла соответственно.