Jak zamienić nazwę hosta na adres IP w skrypcie Bash?

How Can I Resolve Hostname An Ip Address Bash Script



Każdy system w sieci TCP/IP ma przypisany unikalny identyfikator znany jako adres IP, który pomaga połączyć go z innym systemem w sieci i całym Internecie. Wszystkie strony internetowe, do których uzyskujesz dostęp w Internecie, mają również unikalne adresy IP. Ponieważ wszystkim trudno jest zapamiętać adresy IP tych witryn, nadchodzi system DNS, który pomaga przetłumaczyć te trudne do zapamiętania adresy IP na nazwy czytelne dla człowieka. Dzięki DNS nie musisz już pamiętać adresów IP. Zamiast tego musisz tylko zapamiętać nazwę domeny i wszystko gotowe. W rzeczywistości serwer DNS pobiera nazwę hosta i rozwiązuje ją na adres IP, z którym łączy się przeglądarka lub aplikacja.

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ótki

Skrypt bash do tłumaczenia nazwy hosta na adres IP

Aby użyć skryptu bash do wyszukiwania adresu IP, wykonaj następujące kroki:

  1. Utwórz plik bash za pomocą dowolnego edytora tekstu. Tutaj użyję edytora Nano do stworzenia skryptu o nazwie iplookup.sh .$sudo nanoskrypt.sh
  1. 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
  2. Po zakończeniu użyj Ctrl + O i Ctrl + X, aby odpowiednio zapisać i wyjść z pliku.
  3. 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.com

    Wynik byłby podobny do tego:

    Podobnie, aby rozwiązać adres IP yahoo.com, polecenie to:

    $./iplookup.sh yahoo.com

    Wynik byłby podobny do tego:

    To 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.