Jak mogę rozwiązać nazwę hosta na adres IP w skrypcie Bash?

Jak mogę rozwiązać nazwę hosta na adres IP w skrypcie Bash?
Każdy system w sieci TCP/IP jest przypisany unikalnego identyfikatora znanego jako adres IP, który pomaga połączyć go z innym systemem o sieć i przez Internet. Wszystkie strony internetowe, do których dostęp do Internetu mają również unikalne adresy IP. Ponieważ wszystkim trudno jest zapamiętać adresy IP tych stron internetowych, pojawia się system DNS. Z DNS nie musisz już pamiętać adresów IP. Zamiast tego musisz po prostu zapamiętać nazwę domeny i wszystkie zrobione. W rzeczywistości na zapleniu serwer DNS bierze nazwę hosta i rozwiązuje go na adres IP, z którym przeglądarka lub aplikacja następnie łączy.

W tym artykule wyjaśnimy, jak rozwiązać nazwę nazwy hosta/domeny na adres IPv4 i IPv6 w skrypcie Bash. Jednak przed przystąpieniem do tworzenia skryptu przejrzyjmy niektóre polecenia, które można użyć do rozwiązania nazwy hosta/domeny na adres IP.

Świst

Ping jest najprostszym i wbudowanym narzędziem, które jest dostępne w prawie wszystkich systemach operacyjnych. Służy do weryfikacji osiągalności hosta w sieci. Możemy jednak użyć go do znalezienia adresu IP w stosunku do dowolnej nazwy hosta/domeny. Użyj następującej składni, aby znaleźć adres IP docelowej nazwy hosta/nazwy domeny:

$ ping cel-host

Nslookup

NSlookup jest szeroko 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 Target-host

Gospodarz

Do znalezienia adresu IP może użyć innego narzędzia wiersza poleceń w stosunku do dowolnej nazwy nazwy hosta/domeny. Aby użyć tego polecenia, użyj następującej składni:

$ Host Target-host

Kopać

DIG to kolejne przydatne narzędzie wiersza poleceń, które służy do zapytania o różne rekordy związane z DNS. Można go użyć do znalezienia adresu IP w stosunku do dowolnej nazwy nazwy hosta/domeny. Użyj polecenia DIG w następujący sposób, aby znaleźć adres IP według określonej nazwy hosta/nazwy domeny.

$ kopa cel-host +krótki

Skrypt bash, aby rozwiązać nazwę hosta na adres IP

Aby użyć skryptu Bash do wyszukiwania adresu IP, wykonaj poniższe kroki:

  1. Utwórz plik bash za pomocą dowolnego edytora tekstu. Tutaj będę używać edytora nano do utworzenia skryptu o nazwie „iplookup.cii".
    Skrypt $ sudo nano.cii
  1. Kopiuj-wklej następujące wiersze w pliku skryptu. Zauważ, że tutaj w tym skrypcie określam publiczny serwer DNS Google do wyszukiwania IP. Możesz określić dowolny inny serwer DNS według środowiska.
    # Określ serwer DNS
    dnsserver = "8.8.8.8 "
    # funkcja, aby uzyskać adres IP
    funkcja get_ipaddr
    ip_address = ""
    # A i AAA Record odpowiednio dla IPv4 i IPv6
    # 1 $ oznacza pierwszy argument
    jeśli [-n „1 $”]; Następnie
    hostName = "$ 1"
    if [-z „query_type”]; Następnie
    query_type = "a"
    fi
    # Użyj polecenia hosta do operacji wyszukiwania DNS
    host -t $ query_type $ hostName &>/dev/null $ dnsserver
    Jeśli ["$?„-eq” 0 ”]; wówczas
    # Uzyskaj adres IP
    ip_address = "$ (host -t $ query_type $ hostName $ dnsserver | awk '/ma.*adres/print $ nf; Wyjście')"
    w przeciwnym razie
    Wyjście 1
    fi
    w przeciwnym razie
    Wyjdź 2
    fi
    # Wyświetl IP
    Echo $ ip_address

    hostName = "$ 1"
    dla zapytania w „A-IPV4” „AAAA-IPV6”; Do
    query_type = "$ (printf $ query | cut -d- -f 1)"
    ipversion = "$ (printf $ query | cut -d- -f 2)"
    adres = "$ (get_ipaddr $ hostName)"
    Jeśli ["$?„-eq” 0 ”]; wówczas
    if [-n "$ adres"]; Następnie
    echo "$ ipversion adres nazwy hosta $ nazwa hosta to: $ adres"
    fi
    w przeciwnym razie
    echo „wystąpił błąd”
    fi
    zrobione
  2. Po zakończeniu użyj Ctrl+O i Ctrl+X, aby zapisać i wyjść z pliku odpowiednio.
  3. Teraz, aby znaleźć adres IP w stosunku do ukierunkowanej nazwy hosta/domeny, uruchom skrypt za pomocą następującej składni:
    $ ./scenariusz.SH Target-host

    Na przykład, aby rozwiązać adres IP „Google.com ”, poleceniem byłoby:

    $ ./iplookup.sh Google.com

    Wyjście byłoby podobne do tego:

    Podobnie, aby rozwiązać adres IP „Yahoo.com ”, poleceniem byłoby:

    $ ./iplookup.sh yahoo.com

    Wyjście byłoby podobne do tego:

    To wszystko w tym jest! 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 kopa, które można użyć do wykonywania wyszukiwania adresu IP.