所以我有一个非常基本的脚本:
#region Get Hostname IP
IPAddress[] dnsRecords = Dns.GetHostAddresses(hostname);
string ipHostname = dnsRecords[0].ToString();
if (ipHostname.Length == 0) {
responseCode = imapLoginResponse.Failed;
return false;
}
#endregion
#region Try make a request to the Host, Port
try {
_Connection = new TcpClient(ipHostname, port);
} catch (SocketException ex) {
System.Diagnostics.Debug.Write("-" + hostname + "-" + ipHostname + "- " + ex.Message);
responseCode = ex.Message == "No such host is known" || ex.Message.StartsWith("No connection could be made because the target machine actively refused it") ? imapLoginResponse.BadHostname : imapLoginResponse.Failed;
return false;
}
上面的代码只是尝试连接到IMAP服务器。
死亡/肮脏/遗弃/停放网站的情况如下:
现在该怎么办?我无法将其转变为“BadHostname”,因为它可能只是用户端的连接问题,甚至没有连接到互联网。
如果我只是在这里重试,它将最终无限循环。 虽然是的,我可以做5次重试==无效的事情,但这不准确,可能仍然是临时的互联网问题。
我的问题是,为什么它会为不存在的记录获取DNS记录IP? 当这样的事情发生时,我打算做什么?
答案 0 :(得分:0)
IP地址上提供的名称解析和服务是独立的。 您获得DNS记录,因为它确实存在于具有特定生命周期的DNS层次结构中的某个点。
当出现类似情况时你能做些什么?刷新本地DNS缓存。尝试不同的DNS服务器。使用您自己的DNS查询解决方案返回SOA。