人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby 1.8.5 で、IPアドレスのSOAを求める方法ですが、IPアドレスではうまくいかないようでした。一度やってうまくいったことがあったような気がしてばっちりと思ってしまったようです。良い方法があったら教えてください。
require 'resolv'
#p Resolv::DNS.new.getresources("ruby-lang.org", Resolv::DNS::Resource::IN::ANY)
p Resolv::DNS.new.getresources("221.186.184.68", Resolv::DNS::Resource::IN::ANY)


●質問者: kaiketsu
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●100ポイント ベストアンサー

そもそも、

IPアドレスのSOA

って、何ですか?

ある IP アドレスの逆引きゾーンの SOA、という意味であれば、"221.186.184.68" ではなく、"184.186.221.in-addr.arpa" の SOA を取得することになります。
@IT:DNS Tips:逆引きの設定方法とは

ただ、逆引きゾーンの場合、CNAME が設定されていることが多いので、一度、PTR レコードなりを取得して、CNAME があれば、そっちを使って、逆引きゾーンの名称を決定する必要があると思います。

実際、68.184.186.221.in-addr.arpa の PTR レコードは、CNAME が 68.64.184.186.221.in-addr.arpa となっているので、64.184.186.221.in-addr.arpa に対する SOA、ということになるかと思います。

そうではなくて、この IP アドレスの持ち主となるドメインの SOA を求めるのであれば、逆引き結果からドメイン名を取り出して、どのドメイン名に対する SOA を求める、ということになります。

require 'resolv'

domain = Resolv.new.getname("221.186.184.68").slice(/^[^.]+\.(.*)/, 1)
p Resolv::DNS.new.getresources(domain, Resolv::DNS::Resource::IN::ANY)
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ