[ruby-list:50689] Fwd: Resolv::DNSのMXレコード取得について

From: wataru koyama <koyama777wataru@...>
Date: 2018-07-27 02:35:26 UTC
List: ruby-list #50689
お世話になっております。小山渉です。
私の勘違いにより、間違ったサンプルのドメインを提示してしまいましたので、
再度送信いたします。

下記のように、ドットが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 <koyama777wataru@gmail.com>
Date: 2018年7月26日(木) 14:35
Subject: Resolv::DNSのMXレコード取得について
To: <ruby-list@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


以上です。失礼いたします。

In This Thread