Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > resolvライブラリ > Resolv::DNSクラス

class Resolv::DNS

クラスの継承リスト: Resolv::DNS < Object < Kernel < BasicObject

要約

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

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

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

目次

特異メソッド
new open
インスタンスメソッド
close each_address each_name each_resource getaddress getaddresses getname getnames getresource getresources timeouts=
定数
Port UDPSize

特異メソッド

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

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

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

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

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

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

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

インスタンスメソッド

close -> ()[permalink][rdoc]

DNSリゾルバを閉じます。

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

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

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

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

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

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]

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

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

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

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

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

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

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

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

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

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]

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

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

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

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

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

例:

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

定数

Port -> Integer[permalink][rdoc]

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

UDPSize -> Integer[permalink][rdoc]

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