14.4. Wykonywanie zapytań DNS

Problem

Chcemy znaleźć adres IP odpowiadający nazwie domeny lub dowiedzieć się, czy w określonej domenie jest dostępna wybrana usługa (na przykład serwer e-mail).

Rozwiązanie

Wyszukiwanie DNS można przeprowadzić za pomocą klasy Resolv::DNS ze standardowej biblioteki resolv. Najczęściej wykorzystywaną metodą jest DNS#each_address. Jej działanie polega na przetwarzaniu w pętli adresów IP przypisanych do nazwy domeny.

require 'resolv'
Resolv::DNS.new.each_address("oreilly.com") { |addr| puts addr }
# 208.201.239.36
# 208.201.239.37

Dyskusja

Aby sprawdzić istnienie określonego typu rekordu DNS (na przykład rekordu MX w przypadku serwera pocztowego), można skorzystać z metody DNS#getresources lub z iteratora ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.