В тази статия ще обясним как да разрешим име на хост/име на домейн до 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, следвайте стъпките по -долу:
- Създайте bash файл с всеки текстов редактор. Тук ще използвам Nano редактора, за да създам скрипт с име iplookup.sh .$sudo наноscript.sh
- Копирайте-поставете следните редове във вашия скриптов файл. Имайте предвид, че тук в този скрипт посочвам публичния 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}е:$ адрес'
бъда
иначе
изхвърлен 'Възникна грешка'
бъда
Свършен - След като приключите, използвайте 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 търсене.