VSにC#コンソールアプリケーションを作成しています。このアプリケーションでは、ユーザーにドメインなどを入力するように求めています。 example.netを返し、すべてのメールレコード(A、MX、SPF、DMARC、DKIM、CNAME)を返すC#を使用してドメインのDMARCおよびDOMAIN KEYS(DKIM)メールレコードを見つけるにはどうすればよいですか?
私は以下の例を使用してSPF TXTレコードの文字列を返しますが、DMARC DKIM TXT records .. Strange? - か否か?
私は_domainkey.example.net
とk1._domainkey.example.net
(DKIM)の後にいます。
私は_dmarc.example.net
(DMARC)の後です。
private static IList<string> GetTxtRecords(string hostname)
{
IList<string> txtRecords = new List<string>();
string output;
string pattern = string.Format(@"{0}\s*text =\s*""([\w\-\=]*)""", hostname);
var startInfo = new ProcessStartInfo("nslookup");
startInfo.Arguments = string.Format("-type=TXT {0}", hostname);
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
using (var cmd = Process.Start(startInfo))
{
output = cmd.StandardOutput.ReadToEnd();
}
MatchCollection matches = Regex.Matches(output, pattern, RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
if (match.Success)
txtRecords.Add(match.Groups[1].Value);
}
return txtRecords;
}
DMARCとDOMAIN KEY(DKIM)メールレコードを取得するにはどうすればよいですか?
私はこのコードに制限されていませんが、これまでのところこれまでに取り組んだのはこれだけですか?代わりに何をお勧めしますか? DMARCレコードとDKIMレコードもTXTレコードなので、返さないといけませんか? – kingcobra
ああ、申し訳ありませんが、私の悪い。あなたは正しいです....この回答を見て:http://stackoverflow.com/a/25167028/75852。私はそれを試していないが、MXの代わりにレコードタイプをTXTに変更することで動作すると期待しています。 – squillman
nslookupではなくARSoft.Tools.Netのnugetパッケージを使用することをお勧めします。 – Evk