Net::Whois - Scraper sprawdza dane o domenie przez RDAP i WHOIS
Przegląd scrapera

Dane o domenie są zbierane przez RDAP (HTTP, JSON) lub WHOIS (port 43) — w zależności od strefy domenowej. Dla każdego TLD w scraperze zdefiniowane są serwery RDAP i WHOIS; jeśli dla danej strefy dostępny jest RDAP, zapytanie jest wykonywane w pierwszej kolejności przez niego, a w przypadku błędu — przez WHOIS.
Więcej informacji: RDAP (ang.), WHOIS.
Funkcjonalność A-Parser pozwala zapisywać ustawienia scrapowania do późniejszego wykorzystania (presety), ustalać harmonogram scrapowania i wiele więcej. Możesz korzystać z automatycznego mnożenia zapytań, podstawiania podzapytań z plików, iteracji kombinacji alfanumerycznych oraz list, aby uzyskać maksymalną możliwą liczbę wyników.
Zapisywanie wyników jest możliwe w dowolnej formie i strukturze, dzięki wbudowanemu potężnemu silnikowi szablonów Template Toolkit, który pozwala stosować dodatkową logikę do wyników i wyprowadzać dane w różnych formatach, w tym JSON, SQL i CSV.
Przypadki użycia scrapera
🔗 Wybieranie dowolnych danych
Net::Whois wybieranie dowolnych danych
🔗 Parametry domen
Pobieranie parametrów domen
🔗 Powiadomienie o terminach domen
Otrzymywanie powiadomień w Telegram o wygaśnięciu rejestracji domen
🔗 Zbieranie bazy adresów e-mail
Preset pozwala zbierać adresy e-mail domen poprzez usługę Whois.
Zbierane dane
- Czy domena jest zarejestrowana, czy nie
- Data wygaśnięcia rejestracji domeny
- Kiedy domena została zarejestrowana
- Data ostatniej aktualizacji wpisu
- URL serwera RDAP — przy udanym zapytaniu RDAP
- Używany serwer WHOIS — przy zapytaniu WHOIS; przy RDAP często pusty
- Lista serwerów nazw (NS) domeny
- Rejestrator domeny
- Bieżący status domeny
- Data zwolnienia domeny
- Surowa odpowiedź — tekst WHOIS lub JSON RDAP
Możliwości
- Automatyczny wybór RDAP lub WHOIS na podstawie strefy domenowej (priorytet RDAP)
- Obsługa domen międzynarodowych (IDN, np. яндекс.рф)
Zastosowania
- Zbieranie wolnych domen lub tych, które wkrótce zostaną zwolnione
- Zbieranie listy serwerów NS
- Pobieranie statusów domen
Zapytania
Jako zapytania należy podawać domenę szukanej strony, na przykład:
a-parser.com
yandex.ru
google.com
vk.com
facebook.com
Opcje wyprowadzania wyników
A-Parser obsługuje elastyczne formatowanie wyników dzięki wbudowanemu silnikowi szablonów Template Toolkit, co pozwala na wyprowadzanie wyników w dowolnej formie, a także w formie strukturalnej, np. CSV lub JSON
Wynik domyślny
Format wyniku:
$query - registered: $registered, expire: $expire_date, creation: $creation_date
W wyniku wyświetlana jest domena, informacja czy jest zarejestrowana, data wygaśnięcia oraz data rejestracji domeny:
facebook.com - registered: 1, expire: 30.03.2028, creation: 29.03.1997
a-parser.com - registered: 1, expire: 25.02.2022, creation: 25.02.2012
vk.com - registered: 1, expire: 23.06.2021, creation: 24.06.1997
yandex.ru - registered: 1, expire: 01.10.2021, creation: 23.09.1997
google.com - registered: 1, expire: 14.09.2028, creation: 15.09.1997
Wyprowadzanie listy NS
Format wyniku:
$ns.format('$server\n')
Przykład wyniku:
demi.ns.cloudflare.com
vern.ns.cloudflare.com
Wyprowadzanie danych o terminach domeny do CSV
Format wyniku:
[% tools.CSVline(query, registered, expire_date, creation_date, updated_date, free_date, whoisserver, rdapserver, registrar) %]
Przykład wyniku (domena .com, odpowiedź przez RDAP — whoisserver jest puste, rdapserver jest wypełnione):
a-parser.com,1,25.02.2027,25.02.2012,10.02.2026,none,,https://rdap.verisign.com/com/v1/domain/a-parser.com,"Squarespace Domains II LLC"
Wyprowadzanie listy NS do tabeli CSV
Format wyniku:
[% FOREACH ns;
tools.CSVline(query, server);
END %]
Przykład wyniku:
a-parser.com,demi.ns.cloudflare.com
a-parser.com,vern.ns.cloudflare.com
Zrzut wyników do JSON
Ogólny format wyniku:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.query = query;
obj.registered = p1.registered;
obj.expire_date = p1.expire_date;
obj.creation_date = p1.creation_date;
obj.updated_date = p1.updated_date;
obj.free_date = p1.free_date;
obj.whoisserver = p1.whoisserver;
obj.rdapserver = p1.rdapserver;
obj.registrar = p1.registrar;
obj.domains = [];
FOREACH item IN p1.ns;
obj.domains.push({
server = item.server
});
END;
obj.json %]
Tekst początkowy:
[
Tekst końcowy:
]
Przykład wyniku (RDAP):
[{
"registered": 1,
"rdapserver":"https://rdap.verisign.com/com/v1/domain/a-parser.com",
"query":"a-parser.com",
"free_date":"none",
"domains":[
{
"server":"demi.ns.cloudflare.com"
},
{
"server":"vern.ns.cloudflare.com"
}
],
"registrar":"Squarespace Domains II LLC",
"expire_date":"25.02.2027",
"creation_date":"25.02.2012",
"whoisserver":"",
"updated_date":"10.02.2026"
}]
Aby opcje "Prepend text" i "Append text" były dostępne w Edytorze zadań, należy aktywować "More options".
Przetwarzanie wyników
A-Parser pozwala przetwarzać wyniki bezpośrednio podczas scrapowania, w tej sekcji przedstawiliśmy najpopularniejsze przypadki dla scrapera Net::Whois
Pobieranie rejestratora domeny
Przy odpowiedzi przez WHOIS pole $p1.data zawiera tekst; przy RDAP — JSON. Aby uzyskać rejestratora w obu przypadkach, dodaj dwa Konstruktory wyników.
Dodać Result Builders (Konstruktor wyników) i w rozwijanej liście wybrać źródło: $p1.data. Wybrać typ: RegEx Match. W polu wyrażenia regularnego wpisać: Registrar:\s*(.+) i zapisać w zmiennej registrarwhois.
Dodać ponownie Result Builders (Konstruktor wyników) i w rozwijanej liście wybrać źródło: $p1.data. Wybrać typ: RegEx Match. W polu wyrażenia regularnego wpisać: "entities"[\s\S]+?"vcardArray"[\s\S]+?"fn"[\s\S]+?"text"[\s\S]+?"([^"]+?)" i zapisać w zmiennej registrarrdap.
Dodać do Result format (Formatu wyniku): [% IF registrarrdap == 'none' %]$query - $registrarwhois[% ELSE %]$query - $registrarrdap[% END %] — jeśli RDAP nie znalazł nazwy (registrarrdap równa się none), wyświetlana jest wartość z WHOIS, w przeciwnym razie z RDAP.
Pobierz przykład
Jak zaimportować przykład do A-Parser
eJyVVNtO20AQ/RVrFEQoJioPfbGEqkATiSpNKAH1wU6lVTxJt6x3ze46EEX5987Y
jh1TpKpP9lzPmdvuYIPWSaMhugzBC/fk7iw69A6ieAd5+Q8RWFxL562wEEIurKMg
cohhij6Kfvwy0pEhxZUolIdwB36bI4UZym5limSUKckrYzPhKWnpBhuhCnaLT4Lb
cdBg2FTkwdVVcKqNxtPgZNF7LtBug4ug1/i8MCbFjSbz0fsenIUdpl/InmjYLxYh
VNBuXPIg5F5+OaiLbIxzscEHw2ylwlY9JmkqMubbS4VHtg6qgvpnA//KGUSaSk/d
FKpC4Ca1qI9aPnO9K6EchsCUJbqxNRnl9FhmKOs40IuhqgsoR1EGf69imhyOuI4F
MUnfWqRHK7yxs5wJkX4HRg+VmuAGleuQ2F4XUqU00uGKgm7rwPddZn/l2Df1HUPR
4F8scWiylNL17FsblZqJWTd2JTPpSeFuTKGp9o8hPCHmh57B1FB3MmOxQakDa3Ba
2xw1L1k7smHeqjpVdMZypNyBM4VdEl5M+DRlwa2vl5k2C1/L5PyN4P6waVGSuA/9
wfnZwfhQBZDoDU+xu7Ww2If/BZQAak97hS6BmLCSZL44/5zAZilsOrRWbLv6le7K
vFpdTT/+mQD9nSXwT858R0SZ6C2NXsn1rL7pQxML/UDPxkzfmCxXyBPXhVK0sA7v
28sZunpBWWhn9zb4poQgHs1bQnSMcl/nFbfcSmL3iTlntGPHqHXKpVDq8X5ybOFA
500+0yNr3yx2eTIgLqpHbbCkW2wvs6TKRS7p3teGDpEk7kT9BDZP5Y7W+be7q7Qc
Vur2fwBx19yZ
Możliwe ustawienia
| Parametr | Wartość domyślna | Opis |
|---|---|---|
| Recursive query | ☐ | Pozwala uzyskać rozszerzoną wersję WHOIS |
| WHOIS server | Pozwala ustawić własny serwer WHOIS | |
| RDAP server | Pozwala ustawić własny serwer RDAP | |
| Checking by DNS | ☑ | Pozwala sprawdzać, czy domena jest zarejestrowana na podstawie istnienia IP dla domeny |
| Checking domains by DNS record | ☑ | Sprawdzanie IP; jeśli znajdzie status ALLOCATED, uznaje domenę za zarejestrowaną. Jeśli opcja jest wyłączona, sprawdzanie IP w ogóle się nie odbywa |
| Force DNS check for not found domains | ☑ | Wymuszone sprawdzenie, jeśli domena została określona jako niezarejestrowana |