我希望尽可能准确地实现批量可用性检查 of .co.za域名,方法是使用C# ASP.NET检查、SOA、或MX records的存在。
我正在寻找一个解决方案,可以检查相关的DNS记录,适当地利用线程检查至少10个域在同一时间。
“为什么不直接使用API呢?”
检查.co.za域可用性的唯一真正准确的方法是使用http://co.za/whois.shtml,但古老的WHOIS服务不允许批量检查,并限制对给定IP的连续检查。
以前的工作
到目前为止,我已经得到了相当准确的结果使用我的古老的经典ASP脚本使用一个旧的DNS库称为“简单DNS解析器”由Emmanuel。然而,这种方法不能很好地扩展,我需要能够使用一个正确的线程化ASP.NET实现来处理更多的用户。
我现在使用的调皮代码如下所示:
Dim oDNS, pDomain, found_names
Set oDNS = CreateObject("Emmanuel.SimpleDNSClient.1")
oDNS.ServerAddresses = "127.0.0.1" // Set DNS server to use
oDNS.Separator = "," // Set separator for found_names multiple outputs对每个域执行以下命令:
Err.Clear // Reset error flag. I know, I hate it too.
oDNS.Resolve pDomain, found_names, "C_IN", "T_SOA" // Look for SOA records for domain
If Err <> 0 Then // No SOA records could be found.
Err.Clear // Reset error flag
oDNS.GetEmailServers pDomain, found_names // Look for MX records
If Err <> 0 Then // No MX records found either
AssumeDomainIsAvailable(pDomain);
Else // Found some MX records
DomainUnavailable(pDomain);
End If
Else // Found some SOA records
DomainUnavailable(pDomain);
End If任何改进检测的建议都将受到赞赏。这是我对此的第一个问题,所以请原谅我的长篇大论,谢谢你宝贵的时间。
发布于 2009-11-22 13:21:39
这将非常容易使用JH软件的用于.NET的DNS客户端库
var Response = JHSoftware.DnsClient.Lookup("example.com",
JHSoftware.DnsClient.RecordType.SOA);它还支持异步查找的BeginLookup / EndLookup方法。
发布于 2009-11-23 08:23:04
如果Web上提供的服务“限制了对给定IP的连续检查”,那么这可能是出于很好的理由(既为了维护系统,又使投机者的生活更加困难)。把它称为“古旧”当然没有用。
此外,许多DNS请求可能被视为违反服务条款和/或字典攻击,并且可能导致黑名单(免责声明:我不知道co.za的策略)。
https://stackoverflow.com/questions/1774293
复制相似问题