W tym artykule wyjaśnimy, jak rozwiązać nazwę hosta/nazwę domeny na adres IPv4 i IPv6 w skrypcie Bash. Zanim jednak przejdziemy do tworzenia skryptu, przejrzyjmy niektóre polecenia, których można użyć do przetłumaczenia nazwy hosta/domeny na adres IP.
Świst
Ping to najprostsze i najbardziej wbudowane narzędzie dostępne w prawie wszystkich systemach operacyjnych. Służy do weryfikacji osiągalności hosta w sieci. Możemy jednak również użyć go do znalezienia adresu IP względem dowolnej nazwy hosta / nazwy domeny. Użyj następującej składni, aby znaleźć adres IP docelowej nazwy hosta/nazwy domeny:
$świsthost docelowy
Nslookup
Nslookup jest powszechnie używany do rozwiązywania nazwy hosta na adres IP. Aby użyć tego polecenia do wyszukiwania adresu IP, użyj następującej składni:
$nslookup docelowy host
Gospodarz
Inny host narzędzia wiersza poleceń może być użyty do znalezienia adresu IP względem dowolnej nazwy hosta/nazwy domeny. Aby użyć tego polecenia, użyj następującej składni:
$host docelowy host
Ty
Dig to kolejne przydatne narzędzie wiersza poleceń, które służy do sprawdzania różnych rekordów związanych z DNS. Może być używany do wyszukiwania adresu IP w dowolnej nazwie hosta/nazwy domeny. Użyj polecenia Dig w następujący sposób, aby znaleźć adres IP względem określonej nazwy hosta/nazwy domeny.
$tyhost docelowy +krótkiSkrypt bash do tłumaczenia nazwy hosta na adres IP
Aby użyć skryptu bash do wyszukiwania adresu IP, wykonaj następujące kroki:
- Utwórz plik bash za pomocą dowolnego edytora tekstu. Tutaj użyję edytora Nano do stworzenia skryptu o nazwie iplookup.sh .$sudo nanoskrypt.sh
- Skopiuj i wklej następujące wiersze do pliku skryptu. Zauważ, że w tym skrypcie określam publiczny serwer DNS Google do wyszukiwania IP. Możesz określić dowolny inny serwer DNS zgodnie ze swoim środowiskiem.# Określ serwer DNS
serwer DNS=„8.8.8.8”
# funkcja, aby uzyskać adres IP
funkcjonowaćget_ipaddr{
adres IP=''
# Rekord A i AAA odpowiednio dla IPv4 i IPv6
# $1 oznacza pierwszy argument
Jeśli [ -n „1 dolar” ];następnie
nazwa hosta='$ {1}'
Jeśli [ -z „typ_zapytania” ];następnie
typ_zapytania='DO'
być
# użyj polecenia hosta do operacji wyszukiwania DNS
gospodarz-T ${query_type} ${nazwa hosta} &> /dev/zero$ {serwer dns}
Jeśli [ '$?' -równe „0” ];następnie
# zdobądź adres ip
adres IP='$(host -t ${query_type} ${nazwa hosta} ${dnsserver}| awk '/has.*adres/{print $NF; exit}')'
w przeciwnym razie
Wyjście 1
być
w przeciwnym razie
Wyjście 2
być
# wyświetl adres IP
wyrzucił $ip_address
}
nazwa hosta='$ {1}'
dlazapytaniew „A-IPv4” „AAAA-IPv6”;robić
typ_zapytania='$(printf $zapytanie | wytnij -d- -f 1)'
ipwersja='$(printf $zapytanie | wytnij -d- -f 2)'
adres='$(get_ipaddr ${nazwa hosta})'
Jeśli [ '$?' -równe „0” ];następnie
Jeśli [ -n '${adres}' ];następnie
wyrzucił 'Ten${wersja ip}adres nazwy hosta${nazwa hosta}jest:$adres'
być
w przeciwnym razie
wyrzucił 'Wystąpił błąd'
być
Gotowe - Po zakończeniu użyj Ctrl + O i Ctrl + X, aby odpowiednio zapisać i wyjść z pliku.
- Teraz, aby znaleźć adres IP względem docelowej nazwy hosta/nazwy domeny, uruchom skrypt, używając następującej składni:$./script.sh docelowy-host
Na przykład, aby rozwiązać adres IP google.com, polecenie będzie wyglądać tak:
$./iplookup.sh google.comPodobnie, aby rozwiązać adres IP yahoo.com, polecenie to:
$./iplookup.sh yahoo.comTo wszystko! W tym artykule nauczyliśmy się rozwiązywać nazwę hosta na adres IPv4 i IPv6 za pomocą skryptu bash. Nauczyliśmy się również innych narzędzi wiersza poleceń, takich jak Ping, Nslookup, Host i Dig, których można użyć do wyszukiwania adresów IP.