class Resolv::DNS

[edit]

要約

このクラスは DNS を利用した名前解決をするリゾルバを表します。

このクラスは実際には下位のクラスに処理を依頼します。

DNSについては以下を参照してください。

目次

特異メソッド
インスタンスメソッド
定数

特異メソッド

new(resolv_conf = nil) -> Resolv::DNS[permalink][rdoc][edit]

新しい DNS リゾルバを生成します。

resolv_conf が nil の場合は /etc/resolv.conf もしくはプラットフォーム固有の DNS設定を利用します。 resolv_conf が文字列の場合は /etc/resolv.conf と同じフォーマットのファイルを設定に利用します。 resolv_conf がハッシュの場合は、:nameserver, :search, :ndots というキーが利用可能です。それぞれの意味は resolv.conf(5) を参照してください。また、:nameserver_portでアドレスとポートを指定できます。


require "resolv"
Resolv::DNS.new(:nameserver => ['210.251.121.21'],
                :search => ['ruby-lang.org'],
                :ndots => 1)

Resolv::DNS.new(:nameserver_port => [['8.8.8.8', 53], ['8.8.4.4', 53]],
                :search => ['ruby-lang.org'],
                :ndots => 1)
[PARAM] resolv_conf:
DNSの設定を与えます。
open(*args) -> Resolv::DNS[permalink][rdoc][edit]
open(*args) {|dns| ...} -> object

新しい DNS リゾルバを生成します。ブロックを与えた場合は生成したリゾルバでブロックを呼びだし、ブロック終了時にリゾルバを閉じます。

ブロックを与えなかった場合は Resolv::DNS.new と同じです。

[PARAM] args:
DNSの設定を与えます。意味は Resolv::DNS.new の引数と同じです。
[RETURN]
ブロックを与えた場合はブロックの返す値を返し、与えなかった場合は生成したリゾルバを返します。

インスタンスメソッド

close -> ()[permalink][rdoc][edit]

DNSリゾルバを閉じます。

each_address(name) {|name| ...} -> ()[permalink][rdoc][edit]

ホスト名 name の IP アドレスをルックアップし、各ルックアップ結果のアドレスに対してブロックを評価します。

[PARAM] name:
ホスト名を文字列もしくはResolv::DNS::Nameのインスタンスで与えます。
each_name(address) {|name| ...} -> ()[permalink][rdoc][edit]

IP アドレス address のホスト名をルックアップし、各ルックアップ結果のホスト名に対してブロックを評価します。

[PARAM] address:
IPアドレスを文字列、 Resolv::IPv4 のインスタンス、 Resolv::IPv6 のインスタンス、のいずれか与えます。
each_resource(name, typeclass) {|resource| ...} -> ()[permalink][rdoc][edit]

nameに対応するDNSリソースレコードを取得します。見つかったリソースをひとつずつブロックに渡します。

typeclass は以下のいずれかです。

ルックアップ結果は Resolv::DNS::Resource (のサブクラス)のインスタンスとなります。 typeclass に Resolv::DNS::Resource::IN::ANY 以外を指定した場合にはそのクラスのインスタンスを返します。

[PARAM] name:
ルックアップ対象となる名前を Resolv::DNS::Name または String で指定します。
[PARAM] typeclass:
レコード種別を指定します。
getaddress(name) -> Resolv::IPv4 | Resolv::IPv6[permalink][rdoc][edit]

ホスト名 name の IP アドレスをルックアップし、ルックアップ結果の最初のアドレスを返します。

[PARAM] name:
ホスト名を文字列もしくはResolv::DNS::Nameのインスタンスで与えます。
[EXCEPTION] Resolv::ResolvError:
ルックアップに失敗したときに発生します。
getaddresses(name) -> [Resolv::IPv4 | Resolv::IPv6][permalink][rdoc][edit]

ホスト名 name の IP アドレスをルックアップし、ルックアップ結果のアドレスリストを返します。

ルックアップに失敗した場合は空の配列が返されます。

[PARAM] name:
ホスト名を文字列もしくはResolv::DNS::Nameのインスタンスで与えます。
getname(address) -> Resolv::DNS::Name[permalink][rdoc][edit]

IP アドレス address のホスト名をルックアップし、ルックアップ結果の最初のホスト名を返します。

[PARAM] address:
IPアドレスを文字列、 Resolv::IPv4 のインスタンス、 Resolv::IPv6 のインスタンス、のいずれか与えます。
[EXCEPTION] Resolv::ResolvError:
ルックアップに失敗したときに発生します。
getnames(address) -> [Resolv::DNS::Name][permalink][rdoc][edit]

IP アドレス address のホスト名をルックアップし、ルックアップ結果のホスト名リストを返します。

[PARAM] address:
IPアドレスを文字列、 Resolv::IPv4 のインスタンス、 Resolv::IPv6 のインスタンス、のいずれか与えます。
getresource(name, typeclass) -> Resolv::DNS::Resource[permalink][rdoc][edit]

nameに対応するDNSリソースレコードを取得します。最初に見つかったリソースを返します。

typeclass は以下のいずれかです。

ルックアップ結果は Resolv::DNS::Resource (のサブクラス)のインスタンスとなります。 typeclass に Resolv::DNS::Resource::IN::ANY 以外を指定した場合にはそのクラスのインスタンスを返します。

[PARAM] name:
ルックアップ対象となる名前を Resolv::DNS::Name または String で指定します。
[PARAM] typeclass:
レコード種別を指定します。
[EXCEPTION] Resolv::ResolvError:
ルックアップに失敗した場合に発生します。
getresources(name, typeclass) -> [Resolv::DNS::Resource][permalink][rdoc][edit]

nameに対応するDNSリソースレコードを取得します。見つかったリソース全てを配列にして返します。

typeclass は以下のいずれかです。

ルックアップ結果は Resolv::DNS::Resource (のサブクラス)のインスタンスとなります。 typeclass に Resolv::DNS::Resource::IN::ANY 以外を指定した場合にはそのクラスのインスタンスを返します。

[PARAM] name:
ルックアップ対象となる名前を Resolv::DNS::Name または String で指定します。
[PARAM] typeclass:
レコード種別を指定します。
timeouts=(values)[permalink][rdoc][edit]

DNSリゾルバのタイムアウト時間を設定します。


dns.timeouts = 3
[PARAM] values:
タイムアウト時間(秒)を数値か数値の配列で指定します。配列を指定した場合は応答を受信するまでの再試行時のタイムアウト時間も含めて順に設定します。nil を指定した場合はデフォルト値 ([ 5, second = 5 * 2 / nameserver_count, 2 * second, 4 * second ]) を使用します。

定数

Port -> Integer[permalink][rdoc][edit]

デフォルトの DNS ポート番号です。

UDPSize -> Integer[permalink][rdoc][edit]

デフォルトの UDP パケットサイズです。