我是一个托管代码的家伙,所以当我与非托管代码交互时,它并不像广告中宣传的那样工作,我就会紧张不安。谁能给我解释一下,为什么当命令行nslookup工作时,它会返回没有MX记录?
[DllImport("dnsapi", EntryPoint = "DnsQuery_W", CharSet = CharSet.Unicode, SetLastError = true, ExactSpelling = true)]
private static extern int DnsQuery([MarshalAs(UnmanagedType.VBByRefStr)]ref string pszName, QueryTypes wType, QueryOptions options, int aipServers, ref IntPtr ppQueryResults, int pReserved);
string domain = "HomeTechnologySolutions.com";
int num1 = DnsQuery(ref domain, QueryTypes.DNS_TYPE_MX, QueryOptions.DNS_QUERY_BYPASS_CACHE, 0, ref ptr1, 0);
if (num1 != 0)
{
throw new Win32Exception(num1)
}返回的错误代码表示“找不到给定DNS查询的记录”
令人振奋的是,这是我发现的第一个没有通过测试的领域,但我被告知这种情况“经常”发生。(还没有人能经常为我定义,但我正在努力)
无论如何,当我通过命令提示符执行nslookup时,我返回:
> set type=mx
> hometechnologysolutions.com
Server: dhcp.removedtoprotectedtheguilty.com
Address: 10.0.0.9
hometechnologysolutions.com
primary name server = ns1.streetsimple.com
responsible mail addr = hostmaster.streetsimple.com
serial = 11
refresh = 900 (15 mins)
retry = 600 (10 mins)
expire = 86400 (1 day)
default TTL = 3600 (1 hour)发布于 2009-01-07 14:24:38
当我在这里使用‘MX’时,我也没有得到任何针对该特定域名返回的数字记录。
你引用的‘MX’结果来自域名的nslookup记录,不包括任何nslookup记录。SOA记录将在DNS响应的"authority“部分返回,即使没有您提出的特定问题的记录也是如此。
如果没有MX记录,邮件传输代理(MTA)会将主机的A记录视为优先级为0的MX记录,并尝试与该地址建立MX连接。
请参阅RFC 5321的5.1节。请注意,尽管这是一个非常新的RFC,但此行为也存在于SMTP规范的以前版本中。
https://stackoverflow.com/questions/420437
复制相似问题