library resolv

要約

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 サーバからの応答がエラーであった場合に発生する例外です。