2

C#ASP.NETを使用してSOAまたはMXレコードの存在をチェックすることにより、 .co.zaドメイン名の一括可用性チェックを可能な限り正確に実装したいと思います。

スレッド化を適切に利用して一度に少なくとも10個のドメインをチェックする方法で、関連するDNSレコードをチェックできるソリューションを探しています。

「APIだけを使ってみませんか?」

.co.zaドメインの可用性をチェックする唯一の真に正確な方法は、http://co.za/whois.shtmlを使用することです、古風なWHOISサービスは一括チェックを許可せず、特定のIPの連続チェックを制限します。

前作

これまで、EmmanuelKartmannによる「SimpleDNSResolver」と呼ばれる古いDNSライブラリを利用した古い古典的なASPスクリプトを使用することで、かなり正確な結果を得ることができました。ただし、このアプローチは適切に拡張できないため、適切にスレッド化された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

検出を改善するための推奨事項をいただければ幸いです。これがSOに関する私の最初の質問です。私の冗長性を許し、貴重な時間をありがとうございます。

4

2 に答える 2

3

これは、JHSoftwareの.NET用DNSクライアントライブラリを使用すると非常に簡単です。

var Response = JHSoftware.DnsClient.Lookup("example.com", 
                              JHSoftware.DnsClient.RecordType.SOA);

また、非同期ルックアップのBeginLookup/メソッドもサポートしています。EndLookup

于 2009-11-22T13:21:39.550 に答える
0

Webで提供されるサービスが「特定のIPの連続チェックを制限する」場合、それはおそらく正当な理由です(システムを維持し、投機家の生活をより困難にするため)。それを「古風な」と呼ぶことは確かに助けにはなりません。

また、多くのDNS要求は、利用規約の違反および/または辞書攻撃と見なされる可能性があり、(免責事項:co.zaのポリシーがわかりません)ブラックリストにつながる可能性があります。

于 2009-11-23T08:23:04.287 に答える