要約
DNSによる名前解決を行うライブラリです。 Ruby で書かれているため thread-aware であり、並列に多くのホスト名を解決することができます。
DNS モジュールを使うことで、さまざまなリソースを直接ルックアップできます。
なお、単にホスト名から IP アドレスを得たいだけであれば、 socket ライブラリの IPSocket.getaddress などが使用できます。
例:
require "resolv" Resolv.getaddress("www.ruby-lang.org") Resolv.getname("210.251.121.214").to_s Resolv::DNS.new.getresources("www.ruby-lang.org", Resolv::DNS::Resource::IN::A).collect {|r| r.address} Resolv::DNS.new.getresources("ruby-lang.org", Resolv::DNS::Resource::IN::MX).collect {|r| [r.exchange.to_s, r.preference]}
Bugs
NIS はサポートされていません。
クラス
Resolv | リゾルバを表すクラスです。このクラス自体は実際には名前解決をせず、 Resolv.new で与えられたリゾルバに順に問合せることしかしません。 |
Resolv::DNS | このクラスは DNS を利用した名前解決をするリゾルバを表します。 |
Resolv::DNS::Name | ドメイン名を表すクラスです。 |
Resolv::DNS::Query | DNSクエリを表す抽象クラスです。 |
Resolv::DNS::Resource | DNSリソースを表す抽象クラスです。 |
Resolv::DNS::Resource::DomainName | DNSリソースのドメイン名を表す抽象クラスです。 |
Resolv::DNS::Resource::CNAME | DNS リソースの CNAME レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::CNAME | DNS リソースのクラス IN、タイプ CNAME に対応するクラスです。 |
Resolv::DNS::Resource::NS | DNS リソースの NS (正式な(authoritative)ネームサーバ) レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::NS | DNS リソースのクラス IN、タイプ NS に対応するクラスです。 |
Resolv::DNS::Resource::PTR | DNS リソースの PTR レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::PTR | DNS リソースのクラス IN、タイプ PTR に対応するクラスです。 |
Resolv::DNS::Resource::Generic | 汎用DNSリソース抽象クラスです。 |
Resolv::DNS::Resource::HINFO | DNS リソースの HINFO レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::HINFO | DNS リソースのクラス IN、タイプ HINFO に対応するクラスです。 |
Resolv::DNS::Resource::IN::A | DNS リソースのクラス IN、タイプ A に対応するクラスです。 |
Resolv::DNS::Resource::IN::AAAA | DNS リソースのクラス IN、タイプ AAAA に対応するクラスです。 |
Resolv::DNS::Resource::IN::SRV | DNS リソースのクラス IN、タイプ SRV に対応するクラスです。 |
Resolv::DNS::Resource::IN::WKS | DNS リソースのクラス IN、タイプ WKS に対応するクラスです。 |
Resolv::DNS::Resource::MINFO | DNS リソースの MINFO レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::MINFO | DNS リソースのクラス IN、タイプ MINFO に対応するクラスです。 |
Resolv::DNS::Resource::MX | DNS リソースの MX レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::MX | DNS リソースのクラス IN、タイプ MX に対応するクラスです。 |
Resolv::DNS::Resource::SOA | DNS リソースの SOA (Start Of Authority) レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::SOA | DNS リソースのクラス IN、タイプ SOA に対応するクラスです。 |
Resolv::DNS::Resource::TXT | DNS リソースの TXT レコードを表す抽象クラスです。 |
Resolv::DNS::Resource::IN::TXT | DNS リソースのクラス IN、タイプ TXT に対応するクラスです。 |
Resolv::DNS::Resource::ANY | DNS のすべてのクラスに対するクエリーを表わす抽象クラスです。 |
Resolv::DNS::Resource::IN::ANY | DNS クエリーのクラス IN、タイプ ANY に対応するクラスです。 |
Resolv::Hosts | /etc/hosts (Windows であれば %SystemRoot%\System32\drivers\etc\hosts など) を使用するホスト名リゾルバです。 |
Resolv::IPv4 | IPv4のアドレスを表すクラスです。 |
Resolv::IPv6 | IPv6 のアドレスを表すクラスです。 |
モジュール
Resolv::DNS::Resource::IN | DNS のインターネットクラスリソースを表すモジュールです。 |
例外クラス
Resolv::DNS::DecodeError | DNSメッセージのデコードに失敗したときに発生する例外のクラスです。 |
Resolv::DNS::EncodeError | DNSメッセージのエンコードに失敗したときに発生する例外のクラスです。 |
Resolv::DNS::Requester::RequestError | DNS サーバへのリクエストに失敗した場合に発生する例外のクラスです。 |
Resolv::ResolvError | 名前解決に失敗したときに発生する例外のクラスです。 |
Resolv::DNS::Config::OtherResolvError | DNS サーバからの応答がエラーであった場合に発生する例外です。 |