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 pracaDo 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.