VS에 사용자가 도메인 을 입력하도록 요청하는 C# 콘솔 응용 프로그램을 구축하고 있습니다. example.net 그리고 모든 메일 레코드 (A, MX, SPF, DMARC, DKIM, CNAME)를 반환합니다.C#을 사용하여 도메인의 DMARC 및 DOMAIN KEYS (DKIM) 메일 레코드를 찾는 방법은 무엇입니까?
아래 예는 SPF TXT 레코드 문자열을 반환하지만 DMARC는 반환하지 않습니다 및 DKIM TXT 레코드 .. 이상? - 안 그래요?
저는 _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