Szybkie jednoczesne sprawdzanie rekordów DNS SOA dla domen .co.za

Chcę wdrożyćsprawdzanie dostępności zbiorczej z.co.za nazwy domen tak dokładnie, jak to możliwe, sprawdzając ich istnienieSOA lubRekordy MX przy użyciu C # ASP.NET.

Szukam rozwiązania, które może sprawdzić odpowiednie rekordy DNS w sposób, który odpowiednio wykorzystuje wątki do sprawdzenia co najmniej 10 domen naraz.

„Dlaczego po prostu nie użyjesz API?”

Jedynym naprawdę dokładnym sposobem sprawdzenia dostępności domeny .co.za jest użyciehttp://co.za/whois.shtml, ale archaiczna usługa WHOIS nie pozwala na zbiorcze sprawdzanie i ogranicza kolejne kontrole dla danego IP.

Poprzednia praca

Do tej pory dostałemdość dokładne wyniki przy użyciu mojego starożytnego klasycznego skryptu ASP wykorzystującego starą bibliotekę DNS o nazwie „Simple DNS Resolver” autorstwa Emmanuela Kartmanna. Jednak takie podejścienie skaluje się dobrze i muszę być w stanie obsłużyć większą liczbę użytkowników za pomocą właściwie wątkowej implementacji ASP.NET.

Kod niegrzeczny, którego teraz używam, wygląda mniej więcej tak:

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

Wykonaj następujące czynności dla każdej domeny:

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

Wszelkie zalecenia dotyczące poprawy wykrywania są doceniane. To moje pierwsze pytanie na temat TAK, więc wybacz mi moją gadatliwość i dziękuję za twój cenny czas.

questionAnswers(2)

yourAnswerToTheQuestion