Discussion:
[ruby-list:50688] Resolv::DNSのMXレコード取得について
wataru koyama
2018-07-26 05:35:02 UTC
Permalink
はじめたしお。小山枉です。


Resolv::DNSのMXレコヌド取埗に぀いおに぀いお質問させおください。
MXレコヌドが取埗できる堎合に正垞なメヌルドメむンず刀定しようず䞋蚘のようなコヌドを蚘茉したした。
コヌドの意図ずしおは
*recordsが空なら 䞍正なメヌルドメむン
*recordsに䜕か入っおいれば 正垞なメヌルドメむン
ずいう感じです。

ただ、'hoge..gmail.com'のような䞍正なドットが続くタむプで行うずMXレコヌドが取埗でき、正垞なものず刀定されおしたいたした。


records = Resolv::DNS.open do |dns|
dns.timeouts = 1
records = dns.getresources('hoge..gmail.com',
Resolv::DNS::Resource::IN::MX)
end


p records #=> 倀が返っおくる


そしお同様の確認をnslookupコマンドにお行うずMXレコヌドが取れないず刀定されたす。
nslookup
set q=MX
hoge..gmail.com
私のResolv::DNSの䜿い方が間違っおいるのか、もし違う方法にお、hoge..gmail.com
をMXレコヌドが存圚しないものず刀定できる方法がありたしたら、
ご教授いただけるず幞いです。


環境はcentos 6.9
ruby 2.3.3p222


以䞊です。倱瀌いたしたす。
wataru koyama
2018-07-27 02:35:26 UTC
Permalink
お䞖話になっおおりたす。小山枉です。
私の勘違いにより、間違ったサンプルのドメむンを提瀺しおしたいたしたので、
再床送信いたしたす。

䞋蚘のように、ドットが2぀続かなければ存圚するようなドメむンにお、起きた珟象でした。
bear..so-net.ne.jp
kitten..so-net.ne.jp etc

䞊蚘のメヌルアドレスを甚いお
records = Resolv::DNS.open do |dns|
dns.timeouts = 1
records = dns.getresources('bear..so-net.ne.jp ',
Resolv::DNS::Resource::IN::MX)
end

p records #=> 倀が返っおくる


そしお同様の確認をnslookupコマンドにお行うずMXレコヌドが取れないず刀定されたす。
nslookup
set q=MX
bear..so-net.ne.jp
以䞊です。倱瀌いたしたす。

---------- Forwarded message ---------
From: wataru koyama <***@gmail.com>
Date: 2018幎7月26日(朚) 14:35
Subject: Resolv::DNSのMXレコヌド取埗に぀いお
To: <ruby-***@ruby-lang.org>


はじめたしお。小山枉です。


Resolv::DNSのMXレコヌド取埗に぀いおに぀いお質問させおください。
MXレコヌドが取埗できる堎合に正垞なメヌルドメむンず刀定しようず䞋蚘のようなコヌドを蚘茉したした。
コヌドの意図ずしおは
*recordsが空なら 䞍正なメヌルドメむン
*recordsに䜕か入っおいれば 正垞なメヌルドメむン
ずいう感じです。

ただ、'hoge..gmail.com'のような䞍正なドットが続くタむプで行うずMXレコヌドが取埗でき、正垞なものず刀定されおしたいたした。


records = Resolv::DNS.open do |dns|
dns.timeouts = 1
records = dns.getresources('hoge..gmail.com',
Resolv::DNS::Resource::IN::MX)
end


p records #=> 倀が返っおくる


そしお同様の確認をnslookupコマンドにお行うずMXレコヌドが取れないず刀定されたす。
nslookup
set q=MX
hoge..gmail.com
私のResolv::DNSの䜿い方が間違っおいるのか、もし違う方法にお、hoge..gmail.com
をMXレコヌドが存圚しないものず刀定できる方法がありたしたら、
ご教授いただけるず幞いです。


環境はcentos 6.9
ruby 2.3.3p222


以䞊です。倱瀌いたしたす。
Masanori Tanaka
2018-07-27 03:52:27 UTC
Permalink
こんにちは。田䞭ず申したす。

調べたずころ、以䞋のコヌドで /[^\.]+/ ずいう正芏衚珟で split されおいるので、
bear..so-net.ne.jp は bear, so-net, ne, jp ずいう芁玠に分解されたあずに
DNS に問い合わせに行くがために、そのような結果になるようです。

module Label # :nodoc:
def self.split(arg)
labels = []
arg.scan(/[^\.]+/) {labels << Str.new($&)}
return labels
end

https://github.com/ruby/ruby/blame/v2_3_3/lib/resolv.rb#L1173

/[^\.]+/ を /[^\.]/ にするこずで解決するず思いたすが、
このような正芏衚珟になっおいる経緯は私も興味がありたす。

どなたかご存知の方はいらっしゃいたすか
Post by wataru koyama
お䞖話になっおおりたす。小山枉です。
私の勘違いにより、間違ったサンプルのドメむンを提瀺しおしたいたしたので、
再床送信いたしたす。
䞋蚘のように、ドットが2぀続かなければ存圚するようなドメむンにお、起きた珟象でした。
bear..so-net.ne.jp
kitten..so-net.ne.jp etc
䞊蚘のメヌルアドレスを甚いお
records = Resolv::DNS.open do |dns|
dns.timeouts = 1
records = dns.getresources('bear..so-net.ne.jp ',
Resolv::DNS::Resource::IN::MX)
end
p records #=> 倀が返っおくる
そしお同様の確認をnslookupコマンドにお行うずMXレコヌドが取れないず刀定されたす。
nslookup
set q=MX
bear..so-net.ne.jp
以䞊です。倱瀌いたしたす。
---------- Forwarded message ---------
Date: 2018幎7月26日(朚) 14:35
Subject: Resolv::DNSのMXレコヌド取埗に぀いお
はじめたしお。小山枉です。
Resolv::DNSのMXレコヌド取埗に぀いおに぀いお質問させおください。
MXレコヌドが取埗できる堎合に正垞なメヌルドメむンず刀定しようず䞋蚘のようなコヌドを蚘茉したした。
コヌドの意図ずしおは
*recordsが空なら 䞍正なメヌルドメむン
*recordsに䜕か入っおいれば 正垞なメヌルドメむン
ずいう感じです。
ただ、'hoge..gmail.com'のような䞍正なドットが続くタむプで行うずMXレコヌドが取埗でき、正垞なものず刀定されおしたいたした。
records = Resolv::DNS.open do |dns|
dns.timeouts = 1
records = dns.getresources('hoge..gmail.com',
Resolv::DNS::Resource::IN::MX)
end
p records #=> 倀が返っおくる
そしお同様の確認をnslookupコマンドにお行うずMXレコヌドが取れないず刀定されたす。
nslookup
set q=MX
hoge..gmail.com
私のResolv::DNSの䜿い方が間違っおいるのか、もし違う方法にお、hoge..gmail.com
をMXレコヌドが存圚しないものず刀定できる方法がありたしたら、
ご教授いただけるず幞いです。
環境はcentos 6.9
ruby 2.3.3p222
以䞊です。倱瀌いたしたす。
Tanaka Akira
2018-07-28 00:27:59 UTC
Permalink
このような正規表現になっている経緯は私も興味があります。
よく覚えていませんが、foo.example.org と foo.example.org. が成功する
動作として実装したような気がします。
--
[田中 哲][たなか あきら
wataru koyama
2018-07-30 05:29:42 UTC
Permalink
小山枉です。
返信ありがずうございたす。
たた、教えおいただき、ありがずうございたす。
返信しおいただいた事を螏たえるず、珟状、Resolv::DNS を䜿っおdomainチェックするには厳しい感じですかね。
自分で察応するか、gemを探しおみるこずにしたす。

rubyのPRを持っおいるず、同じ事を解決しようずしおいる方も芋぀けたしたので、共有いたしたす。
https://github.com/ruby/ruby/pull/1551


以䞊です。
Post by Masanori Tanaka
このような正芏衚珟になっおいる経緯は私も興味がありたす。
よく芚えおいたせんが、foo.example.org ず foo.example.org. が成功する
動䜜ずしお実装したような気がしたす。
--
[田侭 哲][たなか あきら][Tanaka Akira]
Takahiro Kambe
2018-09-09 13:36:42 UTC
Permalink
$B$3$s$P$s$O!#(B

In message <CAKPWQ=CLr7-4zXgu-xP36P=***@mail.gmail.com>
on Thu, 26 Jul 2018 14:35:02 +0900,
$B$h$&$J%3!<%I$r5-:\$7$^$7$?!#(B
$B:#99$J$,$i$H!"9MN8:Q$_$+$b$7$l$^$;$s$,!#(B

MX$B%l%3!<%I$,<hF@$G$-$?>l9g$ONI$$$N$G$9$,!"$G$-$J$+$C$?>l9g$G$b(B
A(or AAAA)$B%l%3!<%I$,B8:_$9$k>l9g$***@5$7$$%a!<%k$N%I%a%$%s$H$7$F(B
$B07$&I,MW$,$"$j$^$9!#(B
--
$B?@8M(B $BN4Gn(B / Takahiro Kambe
wataru koyama
2018-10-03 08:42:02 UTC
Permalink
お疲れ様です。小山です。
返信ありがずうございたす。ご指摘ありがずうございたす

以䞊です。
こんばんは。
In message <CAKPWQ=CLr7-4zXgu-xP36P=
on Thu, 26 Jul 2018 14:35:02 +0900,
Post by wataru koyama
Resolv::DNSのMXレコヌド取埗に぀いおに぀いお質問させおください。
MXレコヌドが取埗できる堎合に正垞なメヌルドメむンず刀定しようず䞋蚘の
ようなコヌドを蚘茉したした。
今曎ながらず、考慮枈みかもしれたせんが。
MXレコヌドが取埗できた堎合は良いのですが、できなかった堎合でも
A(or AAAA)レコヌドが存圚する堎合は正しいメヌルのドメむンずしお
扱う必芁がありたす。
--
神戞 隆博 / Takahiro Kambe
Loading...