Wygaśnięcie domeny
ważność krytycznamierzonysposób domain_expiry
Dni do wygaśnięcia rejestracji domeny (RDAP, dla .eu WHOIS). Klienci regularnie zapominają o odnowieniu.
Od 2026-09-16 (CREATO_PING cf89ebe) codzienny timer systemd na serwerze LAB247, poza n8n. Wynik trafia tylko do ClickUp — do bazy LAB247 nie, więc statystyk tu nie ma.
WIKI
artykuł z 16.09.2026 · źródeł 10Wygaśnięcie domeny to parametr monitoringu stron internetowych, który sprawdza, ile dni zostało do końca opłaconego okresu rejestracji nazwy domeny. Odczyt pochodzi z danych rejestracyjnych publikowanych przez rejestr: z protokołu RDAP albo, dla części domen krajowych, z usługi WHOIS. Pomiar kończy się liczbą dni, stwierdzeniem, że nazwy nie ma w rejestrze, albo brakiem odpowiedzi. W odpowiedzi RDAP termin wskazuje zdarzenie expiration, zdefiniowane jako chwila, w której obiekt został albo zostanie usunięty z rejestru [1].
Jak działa
Klient RDAP najpierw ustala, który serwer jest właściwy dla domeny. Służy do tego plik startowy IANA (ang. bootstrap): obiekt JSON z tablicą services, w której każdy element łączy listę domen najwyższego poziomu z listą adresów usług RDAP [2]. Klient dopasowuje nazwę etykieta po etykiecie, od prawej, i wybiera najdłuższe dopasowanie [2]. Do adresu usługi dokleja segment domain/ z nazwą, na przykład zapytanie o a.b.example.com trafia pod …/domain/a.b.example.com [2]. Gdy dla domeny najwyższego poziomu nie ma wpisu, klient powinien zgłosić użytkownikowi błąd [2].
Odpowiedź serwera jest dokumentem JSON typu application/rdap+json [3]. Daty cyklu życia leżą w tablicy events: każde zdarzenie ma wymagane pola eventAction i eventDate [1]. Rejestr wartości zdarzeń obejmuje m.in. registration (pierwsza rejestracja), last changed i expiration [1]. Osobna tablica status opisuje stan obiektu, np. active albo pending delete [1].
Kod HTTP ma tu znaczenie rozstrzygające. Pusty wynik zapytania serwer zgłasza kodem 404 [3]. Odmowę z powodu limitu zapytań sygnalizuje kodem 429, a klient powinien wtedy zwolnić i uszanować nagłówek Retry-After [3]. Odpowiedź 429 nie mówi więc nic o stanie domeny.
WHOIS jest starszym protokołem tekstowym: klient łączy się z portem TCP 43, wysyła zapytanie zakończone znakami CR i LF, a serwer zamyka połączenie po wysłaniu odpowiedzi [4]. Protokół nie ma mechanizmu wskazania kodowania znaków ani kontroli dostępu, integralności i poufności [4].
Standardy i specyfikacje
- RFC 9083 definiuje odpowiedzi RDAP, w tym zdarzenia
eventsi wartościstatus[1]. - RFC 9224 opisuje pliki startowe IANA i dopasowanie nazwy do serwera [2].
- RFC 7480 ustala użycie HTTP w RDAP: kody 404 i 429 oraz typ
application/rdap+json[3]. - RFC 3912 opisuje WHOIS na porcie 43 [4].
- ICANN ogłosiło, że od 28 stycznia 2025 r. RDAP jest rozstrzygającym źródłem danych rejestracyjnych domen gTLD w miejsce wygaszanych usług WHOIS [5].
Zagrożenia i skutki
Etapy po dacie wygaśnięcia w gTLD. Umowa rejestru .org opisuje typowy przebieg. Nieodnowiona rejestracja jest automatycznie odnawiana przez system pierwszego dnia po dacie wygaśnięcia; okres Auto-Renew Grace Period trwa tam 45 dni kalendarzowych [6]. ICANN opisuje autoRenewPeriod jako okres łaski po wygaśnięciu rejestracji, którą rejestr sam przedłużył [7]. Usunięta nazwa trafia na 30 dni w stan REDEMPTIONPERIOD i nie jest wtedy umieszczana w pliku strefy [6]. Nieprzywrócona przechodzi w PENDING DELETE, a po pięciu dniach zostaje usunięta z bazy rejestru [6] [7]. Badacze z Northeastern University zauważają, że rejestratorzy zwykle usuwają nazwę tuż przed końcem 45-dniowego okresu, żeby nie ponosić opłaty rejestru [10].
Domeny .pl. Według komunikatu rejestru domena, której okres rozliczeniowy się skończył, przestaje działać i przechodzi w stan BLOCKED na 30 dni; w tym czasie abonent może jeszcze ją odnowić, a bez odnowienia umowa zostaje rozwiązana, a nazwa wraca do puli wolnych [8].
Domeny .eu. Usunięta nazwa, także z powodu nieopłacenia odnowienia, trafia na 40 dni do kwarantanny [9]. Strony i adresy e-mail w tej domenie przestają działać, a po kwarantannie nazwę może zarejestrować ktokolwiek [9].
Przejęcie wygasłej nazwy. Usunięte nazwy przechwytują wyspecjalizowane usługi drop catching, które rejestrują je w chwili zwolnienia [10]. Część rejestratorów sprzedaje wygasłe domeny klientów jeszcze w okresie Auto-Renew Grace; taka nazwa zachowuje pierwotną datę utworzenia, więc zmiana właściciela jest słabo widoczna [10]. Nazwa przechwycona po usunięciu wygląda z kolei jak nowo zarejestrowana [10]. Autorzy przytaczają prace o przejmowaniu zasobów chronionych adresami e-mail w wygasłej domenie i o stronach, które nadal ładują JavaScript z wygasłych domen, co pozwala nowemu właścicielowi wstrzyknąć kod [10].
Przykłady
Z badania z 2017 r.: 10% usuniętych domen .com rejestrowano ponownie tego samego dnia, w którym usunięto poprzednią rejestrację, a w strefie .org ponad połowa ponownych rejestracji z dnia usunięcia przypadała na 30 sekund [10]. Dziennie usuwano wtedy ponad 75 tys. domen w samej strefie .com [10].
| Obserwacja | Odpowiedź | Znaczenie |
|---|---|---|
| Data w przyszłości | RDAP 200, zdarzenie expiration [1] | rejestracja opłacona do tej daty |
| Data minęła, nazwa w rejestrze | stan okresu łaski [7] | odnowienie jeszcze możliwe |
| Brak nazwy | RDAP 404 [3] | nazwa niezarejestrowana albo już usunięta [6] |
| Odmowa | RDAP 429 [3] | limit zapytań, stan domeny nieznany |
| Brak wpisu TLD | bootstrap bez dopasowania [2] | rejestr bez usługi RDAP w pliku IANA |
| Domena .pl po okresie rozliczeniowym | stan BLOCKED [8] | 30 dni na odnowienie |
| Domena .eu usunięta | kwarantanna [9] | 40 dni na reaktywację |
- [1] RFC 9083 — JSON Responses for the Registration Data Access Protocol (RDAP) · IETF
- [2] RFC 9224 — Finding the Authoritative Registration Data Access Protocol (RDAP) Service · IETF
- [3] RFC 7480 — HTTP Usage in the Registration Data Access Protocol (RDAP) · IETF
- [4] RFC 3912 — WHOIS Protocol Specification · IETF
- [5] ICANN Update: Launching RDAP; Sunsetting WHOIS · ICANN
- [6] .ORG Agreement Appendix 7 — Functional and Performance Specifications · ICANN
- [7] EPP Status Codes: What Do They Mean, and Why Should I Know? · ICANN
- [8] Rozwiązanie porozumienia z rejestratorem Fachowcy.pl · NASK — Rejestr domeny .pl
- [9] Why is my domain name in quarantine? How can I restore it? · EURid
- [10] Game of Registrars: An Empirical Analysis of Post-Expiration Domain Name Takeovers (USENIX Security 2017) · USENIX / Northeastern University
STATS
wyniki z systemu · tylko liczby zbiorcze- Stron zmierzonych
- 40w ostatnim dniu pomiaru
- OK
- 31odczytów
- Fail
- 9odczytów
- Nie dało się sprawdzić
- 0timeout, blokada, limit zapytań
- Udział fail
- 22,5%bez „nie dało się”
- Stron łącznie
- 275choć jeden odczyt
- OK
- 1597odczytów
- Fail
- 384odczytów
- Nie dało się sprawdzić
- 0timeout, blokada, limit zapytań
- Udział fail
- 19,4%bez „nie dało się”
| Dzień | fail | nie dało się sprawdzić | ok |
|---|---|---|---|
| 08.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 09.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 10.10.2026 | 10 odczytów | 0 odczytów | 30 odczytów |
| 11.10.2026 | 10 odczytów | 0 odczytów | 29 odczytów |
| 12.10.2026 | 10 odczytów | 0 odczytów | 29 odczytów |
| 13.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 14.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 15.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 16.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 17.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 18.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 19.10.2026 | 10 odczytów | 0 odczytów | 30 odczytów |
| 20.10.2026 | 10 odczytów | 0 odczytów | 30 odczytów |
| 21.10.2026 | 9 odczytów | 0 odczytów | 31 odczytów |
| 22.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 23.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 24.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 25.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 26.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 27.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 28.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 29.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 30.10.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 31.10.2026 | 8 odczytów | 0 odczytów | 32 odczyty |
| 01.11.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 02.11.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 03.11.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 04.11.2026 | 7 odczytów | 0 odczytów | 33 odczyty |
| 05.11.2026 | 9 odczytów | 0 odczytów | 31 odczytów |
| 06.11.2026 | 9 odczytów | 0 odczytów | 31 odczytów |
- Otwarte teraz
- 9stron: 9 · w okresie łaski: 1
- Nowe w ostatnim dniu
- 205.11.2026
- Otwarte od początku
- 30stron: 30
- Zamknięte
- 20od początku
- Mediana trwania
- 11 dni 0 hod wykrycia do zamknięcia
| Ustalenie | Skutek | Otwarte teraz | Łącznie | Zamknięte |
|---|---|---|---|---|
| Wygaśnięcie domeny domain_expiry | usterka niekrytyczna | 9 | 30 | 20 |
| Dzień | nowe ustalenia |
|---|---|
| 08.10.2026 | 0 ustaleń |
| 09.10.2026 | 0 ustaleń |
| 10.10.2026 | 3 ustalenia |
| 11.10.2026 | 0 ustaleń |
| 12.10.2026 | 0 ustaleń |
| 13.10.2026 | 0 ustaleń |
| 14.10.2026 | 0 ustaleń |
| 15.10.2026 | 0 ustaleń |
| 16.10.2026 | 0 ustaleń |
| 17.10.2026 | 0 ustaleń |
| 18.10.2026 | 2 ustalenia |
| 19.10.2026 | 2 ustalenia |
| 20.10.2026 | 0 ustaleń |
| 21.10.2026 | 0 ustaleń |
| 22.10.2026 | 0 ustaleń |
| 23.10.2026 | 0 ustaleń |
| 24.10.2026 | 0 ustaleń |
| 25.10.2026 | 0 ustaleń |
| 26.10.2026 | 0 ustaleń |
| 27.10.2026 | 1 ustalenie |
| 28.10.2026 | 0 ustaleń |
| 29.10.2026 | 0 ustaleń |
| 30.10.2026 | 1 ustalenie |
| 31.10.2026 | 1 ustalenie |
| 01.11.2026 | 0 ustaleń |
| 02.11.2026 | 0 ustaleń |
| 03.11.2026 | 0 ustaleń |
| 04.11.2026 | 0 ustaleń |
| 05.11.2026 | 2 ustalenia |
| 06.11.2026 | 0 ustaleń |
Harmonogram nie zapisał jeszcze przebiegu ze sposobem „domain_expiry”. Zapis przebiegów z n8n działa od 2026-09-14.
CARD
karta z kodu CREATO_PING, odczyt 22.09.2026Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.
| Obszar i ważność | Bezpieczeństwo · krytyczna (B03) |
|---|---|
| Workflow i częstotliwość | creato-ping-domeny.timer działa na LAB247timer systemd codziennie 03:30 UTC · Poza n8n, od 2026-09-16 (zastąpił tygodniowy workflow ze starej instancji). Do 40 domen na przebieg; wynik tylko do ClickUp, do bazy LAB247 nie trafia. |
| Sonda i helper | sposób domain_expiry · CREATO_PING/helpers/domain_expiry.py |
| Testy |
|
| Typ wyniku | enum: ok / fail / timeout / nie_dalo_sie_sprawdzic (z przyczyną) + dni do wygaśnięcia, data wygaśnięcia, flaga niezarejestrowana |
| Jednostka | dni (liczba całkowita, zaokrąglenie w dół); .eu i .de bez liczby dni — tylko zarejestrowana / wolna |
| Próg i reguła | Reguła: mniej niż 30 dni do wygaśnięcia albo brak domeny w rejestrze = fail. Timeout RDAP i WHOIS po 5,0 s; wynik, którego nie dało się oprzeć na odpowiedzi rejestru, idzie w trzeci stan, nie w fail. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/domain_expiry.py → _EXPIRY_WARN_DAYS (30), _RDAP_TIMEOUT, _WHOIS_TIMEOUT, _WHOIS_FALLBACK, _WHOIS_ON_RATE_LIMITCREATO_PING/helpers/domain_expiry_portfolio.py → DEFAULT_LIMIT (40), FRESH_DAYS (7), RECHECK_BELOW_DAYS (45), STOP_AFTER_429 (3)CREATO_PING/deploy/lab247/systemd/creato-ping-domeny.timer → 03:30 UTC |
| Retencja odczytów | Odczyt domen robi własny timer systemd (03:30 UTC) poza skanerem, więc nie ma wiersza w tabeli `odczyty`: na serwerze monitoringu zostaje plik stanu z ostatnim rozstrzygniętym wynikiem per domena (nadpisywany), a rekordy writera lądują w `state/domeny_wstrzymane/<czas>.json`, bo zapis do ClickUpa jest wstrzymany. Do bazy LAB247 ten kanał nie idzie. Replay po surowych odczytach niemożliwy. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/domain_expiry.py · CREATO_PING/helpers/domain_expiry_portfolio.py · CREATO_PING/deploy/lab247/systemd/creato-ping-domeny.timer · CREATO_PING/skaner/adapter_clickup.py · CREATO_PING/skaner/sprawy.py · CREATO_PING/docs/skaner/przebieg-danych.md · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 22.09.2026 |
domain_expiry: bramka polityki jest otwarta (gate=true), ale ten pomiar w ogóle nie dochodzi dziś do skanera — wygasanie domen liczy własny timer systemd o 03:30 UTC, a nie sonda zlecenia (`skaner/limity.toml`: „domain_expiry nie jest w rytmie”). Rekordy writera zamiast do ClickUpa lądują w pliku `state/domeny_wstrzymane/<czas>.json`, więc nie powstaje ani sprawa, ani usterka atomowa: wskaźnik strony zostaje bez zmian. Katalog usterek trzyma dla tego kanału trzy pozycje czekające na sondę — kontener zastępczy „Termin domeny wymaga uwagi” (waga 2) oraz atomy `domena_wygasa` (waga 2) i `domena_wygasla` (waga 4 od 10.10, skutek jak DOWN: domena wyrejestrowana albo przejęta po wygaśnięciu, ocena 7–8 = Wysoki). Wynik nierozstrzygnięty (brak RDAP i WHOIS, 429, brak daty) to trzeci stan `nie_dalo_sie_sprawdzic`, nie porażka.
| Kod | Finding | Severity | Pewność | Skutek | Finding / alarm | Waga → ocena | Co zrobić |
|---|---|---|---|---|---|---|---|
| B03.01 | Wygaśnięcie domenydomain_expiry | Wysoka | Ewidentne | usterka niekrytyczna | tak / nie | waga 2 → ocena 3–4 (niebieski) | Opłać odnowienie domeny u rejestratora. |
| B03.02 | Domena wygasa w ciągu 30 dnidomena_wygasa | — | — | — | — / — | waga 2 → ocena 3–4 (niebieski) | — |
| B03.03 | Domena wyrejestrowana albo przejęta po wygaśnięciudomena_wygasla | — | — | — | — / — | waga 4 → ocena 7–8 (pomarańczowy) | — |
| Kod i klucz | B03.01 · domain_expiry · w tabeli typów |
|---|---|
| Co znaczy | Rejestracja domeny wygasa w ciągu 30 dni. |
| Kiedy powstaje | RDAP (bootstrap IANA) z fallbackiem WHOIS. Status fail, gdy days_remaining < 30, albo gdy domena jest niezarejestrowana (404 z RDAP dla TLD z RDAP, albo WHOIS „not found”). Rekordy writera powstają tylko z wyników ok i fail (z liczbą dni albo z flagą unregistered).Rekordy writera: domain_expiry_portfolio.py:95–102. RDAP timeout daje status timeout (linia 336), a limit zapytań lub brak daty daje nie_dalo_sie_sprawdzic; writer_records ich nie przekazuje. |
| Severity · pewność | Wysoka · Ewidentne |
| Skutek dla strony | usterka niekrytyczna · zakłada Finding · alarm nie |
| Waga → ocena | waga 2 → ocena 3–4 (niebieski) |
| Klasyfikacja | OCSF 1.9.0: poza klasami Findingu |
| Rekord OCSF | finding_info.analytic.uid = "B03.01" · analytic.name = "domain_expiry" · finding_info.types = ["B03 Wygaśnięcie domeny"] |
| Co zrobić | Opłać odnowienie domeny u rejestratora. |
| Wersje typu |
|
| Kod i klucz | B03.02 · domena_wygasa → domain_expiring (klucz angielski przyjęty 01.10; skaner nadaje jeszcze stary) · w tabeli typów |
|---|---|
| Co znaczy | opis do opracowania |
| Kiedy powstaje | nie emitowany: tylko wpis w katalogu. Check emituje wspólny typ domain_expiry. |
| Severity · pewność | — |
| Skutek dla strony | — · brak w polityce |
| Waga → ocena | waga 2 → ocena 3–4 (niebieski) |
| Klasyfikacja | OCSF 1.9.0: poza klasami Findingu |
| Rekord OCSF | finding_info.analytic.uid = "B03.02" · analytic.name = "domain_expiring" · finding_info.types = ["B03 Wygaśnięcie domeny"] |
| Co zrobić | — |
| Wersje typu |
|
| Kod i klucz | B03.03 · domena_wygasla → domain_expired (klucz angielski przyjęty 01.10; skaner nadaje jeszcze stary) · w tabeli typów |
|---|---|
| Co znaczy | opis do opracowania |
| Kiedy powstaje | nie emitowany: tylko wpis w katalogu. Niezarejestrowana domena trafia do domain_expiry z unregistered=true. |
| Severity · pewność | — |
| Skutek dla strony | — · brak w polityce |
| Waga → ocena | waga 4 → ocena 7–8 (pomarańczowy) |
| Klasyfikacja | OCSF 1.9.0: poza klasami Findingu |
| Rekord OCSF | finding_info.analytic.uid = "B03.03" · analytic.name = "domain_expired" · finding_info.types = ["B03 Wygaśnięcie domeny"] |
| Co zrobić | — |
| Wersje typu |
|
LOOP
pętli: 2Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Sygnał: Research detekcji: rdap.org odpowiada 404 zarówno dla wolnej nazwy, jak i dla strefy bez RDAP (.eu) — każda domena .eu dostawałaby fałszywe „nie znaleziono”.
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieresearch i test na żywej domenie .eu
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. ZmianazrobioneWHOIS dla .eu, 404 rozdzielone
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-09-05 | Dla .eu 404 z RDAP kończy się zapytaniem WHOIS: zarejestrowana = ok bez daty, wolna = fail z flagą niezarejestrowana. W wyniku pojawiają się data rejestracji, rejestrator i serwery NS.helpers/domain_expiry.py · helpers/tests/test_domain_expiry.py · docs/gotchas.md | 404 z rdap.org nie odróżniał strefy bez RDAP od wolnej nazwy; świeża data rejestracji miała wskazywać przejęcie po wygaśnięciu. | tylko ten parametr | b0fc77cbez replayubez zapisu zatwierdzenia |
Sygnał: Pierwszy skan całego portfela z nowego serwera: 167 z 216 domen dostało HTTP 429 z rdap.org; strona w subdomenie i domena .de dostały fałszywe „niezarejestrowana”, a WHOIS NASK odpowiadał tekstem o przekroczonym limicie.
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieczłowiek przejrzał wyniki pierwszego skanu portfela
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobione429 = nie sprawdzono, subdomena → rodzic
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-09-16 | Zapytania wprost do serwera rejestru z pliku IANA; 429 = timeout, nie fail. Do zapisu trafia tylko wynik rozstrzygnięty, najwyżej 40 domen na dobę, pojedynczo, z bezpiecznikiem 3 kolejnych 429 na strefę.helpers/domain_expiry.py · helpers/domain_expiry_portfolio.py · deploy/lab247/systemd/creato-ping-domeny.timer | Równoległe zapytania do rdap.org kończą się limitem; „rejestr nie odpowiedział” to nie „domena wygasa”. | cały system Parametr zaczyna działać na nowym serwerze: fail daje WARNING i zmienia status strony w ClickUp; stary tygodniowy workflow wyłączony. | cf89ebebez replayubez zapisu zatwierdzenia |
| 2026-09-16 | 404 na nazwie z więcej niż dwiema etykietami = zapytanie o domenę nadrzędną; .de sprawdzane przez WHOIS DENIC; strefa bez RDAP i bez WHOIS = timeout zamiast fail.helpers/domain_expiry.py | Rejestr zna tylko domenę, nie subdomenę, a DENIC nie ma RDAP — oba przypadki dawały fałszywe „niezarejestrowana”. | tylko ten parametr | cf89ebebez replayubez zapisu zatwierdzenia |
| 2026-09-16 | Domeny .pl przy 429 z RDAP NASK biorą datę z pola renewal date w WHOIS NASK.helpers/domain_expiry.py | NASK przycina RDAP dla całego adresu IP, a WHOIS odpowiada w tym samym czasie z tą samą datą. | tylko ten parametr | cf89ebebez replayubez zapisu zatwierdzenia |
| 2026-09-16 | Odpowiedź WHOIS NASK o przekroczonym limicie liczona jak 429.helpers/domain_expiry.py · helpers/tests/test_domain_expiry.py · docs/gotchas.md | Wcześniej wychodziła jako „brak daty” i bezpiecznik strefy jej nie widział. | tylko ten parametr | 8fb4ce3bez replayubez zapisu zatwierdzenia |