host

Proste narzędzie do lookupu DNS – zamienia nazwy na adresy IP i odwrotnie.

host to lekkie narzędzie do odpytywania DNS-u. Robi dokładnie jedno: zamienia nazwy domen na adresy IP (i odwrotnie), a przy okazji potrafi wyciągnąć dowolny typ rekordu DNS — MX, NS, TXT, SOA czy CNAME. Pochodzi z pakietu BIND, więc znajdziesz je na większości serwerów Linux obok krewnych w rodzaju dig i nslookup. Gdy chcesz szybko sprawdzić „na jaki adres wskazuje ta domena” albo „kto trzyma pocztę dla tej firmy”, host daje czytelną odpowiedź jednym zwięzłym poleceniem.

Składnia i najważniejsze opcje

Podstawowa składnia: host [-t TYP] nazwa [serwer]

Jeśli podasz serwer na końcu, zapytanie poleci do tego konkretnego serwera DNS zamiast do domyślnego z /etc/resolv.conf.

  • -t TYP — wybiera typ rekordu do odpytania (np. A, AAAA, MX, NS, TXT, SOA, CNAME, PTR).
  • -a — skrót dla „pokaż wszystko”: działa jak -v plus zapytanie typu ANY.
  • -v — tryb gadatliwy, pełny format zbliżony do tego, co zwraca dig.
  • -4 / -6 — wymusza użycie odpowiednio IPv4 lub IPv6 do komunikacji z serwerem DNS.
  • -C — pobiera i porównuje rekordy SOA ze wszystkich autorytatywnych serwerów strefy (przydatne, gdy sprawdzasz, czy serwery są zsynchronizowane).
  • -l — próbuje wykonać transfer strefy (AXFR) i wypisuje rekordy NS, PTR oraz adresowe.
  • -T — wymusza zapytanie po TCP zamiast domyślnego UDP.
  • -W SEK — ustawia czas oczekiwania na odpowiedź w sekundach.

Przykłady użycia

  • host learningzone.pl — najprostszy lookup: zwraca adresy IPv4 i IPv6 domeny.
  • host 8.8.8.8 — reverse DNS: podajesz IP, dostajesz nazwę hosta (rekord PTR).
  • host -t MX gmail.com — sprawdza serwery pocztowe domeny wraz z priorytetami.
  • host -t TXT learningzone.pl — wyciąga rekordy TXT, np. SPF czy weryfikacje domeny.
  • host learningzone.pl 1.1.1.1 — to samo zapytanie, ale kierowane do serwera DNS Cloudflare zamiast domyślnego.

Częste błędy i pułapki

Pierwsza klasyka: host -l rzadko działa na cudzych domenach — transfer strefy jest dziś niemal zawsze blokowany przez serwery, więc dostaniesz Transfer failed. To nie błąd po Twojej stronie, tylko zdrowy rozsądek administratora drugiej strony.

Druga: host czyta /etc/resolv.conf, więc wynik zależy od tego, jaki resolver akurat masz ustawiony. Jeśli odpowiedź wygląda dziwnie, dopisz konkretny serwer na końcu (np. 8.8.8.8), żeby ominąć lokalny cache czy filtrujący DNS.

Trzecia: nie myl host z /etc/hosts — to narzędzie pyta wyłącznie DNS, a wpisów z lokalnego pliku hosts nie uwzględnia tak, jak robi to zwykłe rozwiązywanie nazw w aplikacjach.

Powiązane komendy: dig (więcej szczegółów i skryptowalność), nslookup (interaktywny, choć przestarzały), getent hosts (uwzględnia /etc/hosts i NSS) oraz nsupdate do dynamicznej aktualizacji rekordów.