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

ip アドレスを逆引きして、名前解決ができないときに、SOAを取得したいのです。言語は、ruby がいいです。どうするのがいいのでしょうか? Resolv を使うとできそうなのですが、記法がよくわかりません。

●質問者: kaiketsu
●カテゴリ:コンピュータ インターネット
✍キーワード:IP Ruby SOA アドレス 名前
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● いわどん
●50ポイント

こういうことですか?

require 'resolv'

soa = Resolv::DNS.new.getresources("google.co.jp", Resolv::DNS::Resource::IN::SOA)
p soa

http://doc.okkez.net/192/view/library/resolv

http://doc.okkez.net/192/view/method/Resolv=DNS/i/getresources

◎質問者からの返答

google.co.jp のところに IPアドレスをいれてもうまくいくのでしょうか


2 ● いわどん
●50ポイント

google.co.jp のところに IPアドレスをいれてもうまくいくのでしょうか

うまくいかないですね。digコマンドを使ってもIPアドレスから素直にSOAを得る方法はわかりませんでした。ただしその場合でもAUTHORITY SECTIONにSOAが含まれているならばそこから拾えば良いのではないかと考えました。

resolvではうまくできませんでしたので、pNet-DNSというgemを使った方法で試しました。

ただし、この方法は逆引きできるIPアドレス(例えばgoogle.co.jp)ではうまくうごかない(SOAを得られない)ので、実際に逆引きできないIPアドレスで試しました。

require 'rubygems'
require 'Net/DNS'
Net::DNS::Resolver.new.query("210.219.133.212", "SOA").answer
# => []
Net::DNS::Resolver.new.query("210.219.133.212", "SOA").authority
#=> [133.219.210.in-addr.arpa.9756INSOAnsm.hananet.net. dnsmaster.hanaro.com. (
#2006010111; Serial
#86400; Refresh
#3600; Retry
#604800; Expire
#86400 ); Minimum TTL]

なお、pNet-DNSのドキュメントは http://pnet-dns.rubyforge.org/ にあります。

また、上記逆引きできないIPアドレスは http://www.hart.co.jp/spam/rejiponly.html に書かれていた例から流用したものです。

◎質問者からの返答

うーんやっぱり面倒のようですね。

関連質問


●質問をもっと探す●



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