Narzędzia takie jak host
i dig
pozwalają zobaczyć adres IP odpowiadający nazwie hosta.
Istnieje również getent
narzędzie, którego można użyć do zapytania /etc/hosts
lub innych baz danych NSS.
Szukam wygodnego standardowego narzędzia (które jest dostępne w Debianie, powiedzmy), które rozwiązuje nazwę hosta niezależnie od tego, gdzie jest zdefiniowane.
Powinno to być mniej więcej równoważne z
ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'
getent
?getent
że wygląda również w DNS (myślałem, że to tylko wygląda/etc/hosts
). Teraz, gdy go wypróbowałem, oto co jest nie tak zgetent
:google.com
ponieważ zwraca pojedynczy adres, a ten adres to IPv6. Co nie jest pomocne, ponieważ jestem w sieci IPv4, a moje polecenie faktycznie wydrukuje adres IPv4.Odpowiedzi:
Jedyne znane mi polecenie, które robi to, co chcesz, to resolip:
http://linux.die.net/man/1/resolveip
Jest on jednak dostarczany tylko z serwerem mysql, który może nie być idealny do instalacji wszędzie.
źródło
Jeśli problem polega na tym, że nie chcesz rozwiązywać tych nazw przy użyciu ipv6, po prostu poproś getent o użycie tylko ipv4. Spowoduje to wyliczenie wszystkich adresów IPv4:
źródło
ahostsv6
.getent ahosts google.com
.Chodzi o to, że istnieje kilka interfejsów API do rozpoznawania nazw hostów
gethostbyname
,getaddrinfo
ainet_pton
niektóre z nich mogą zwrócić więcej niż jeden adres i / lub możesz zapytać o typ adresu, który chcesz.Jeśli chcesz w przenośny sposób uzyskać jeden adres IPv4, może:
źródło
(Ta odpowiedź dotyczy tylko użytkowników root na komputerze).
Byłem tym również zirytowany, a następnie ustandaryzowałem się, uruchamiając dnsmasq na wszystkich moich komputerach. Dnsmasq to lekka pamięć podręczna DNS. Dodatkową korzyścią jest to, że obsługuje zawartość usługi
/etc/hosts
DNS.źródło
gethostip -d name.domain
zsyslinux
pakietu Ubuntu (i prawdopodobnie Debiana).-d
wypisuje format dziesiętny.źródło
Wykorzystałem swoją czystą perlową wiedzę i napisałem mały skrypt z obsługą błędów:
/ usr / local / bin / gethostip:
Dziękujemy Stéphane'owi Chazelasowi za wstępny pomysł
źródło