Skip to content

Commit 94aa892

Browse files
Merge pull request #271 from yaroslaff/ga
.ga TLD support (freenom)
2 parents 96360e4 + eef30c0 commit 94aa892

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

whois/parser.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,8 @@ def load(domain: str, text: str):
411411
return WhoisLv(domain, text)
412412
elif domain.endswith(".co"):
413413
return WhoisCo(domain, text)
414+
elif domain.endswith(".ga"):
415+
return WhoisGa(domain, text)
414416
else:
415417
return WhoisEntry(domain, text)
416418

@@ -3462,6 +3464,28 @@ def __init__(self, domain: str, text: str):
34623464
else:
34633465
WhoisEntry.__init__(self, domain, text, self.regex)
34643466

3467+
class WhoisGa(WhoisEntry):
3468+
"""Whois parser for .ga domains"""
3469+
3470+
regex: dict[str, str] = {
3471+
"domain_name": r"Nom de domaine: *(.+)",
3472+
"registrant_name": r"\[HOLDER\]\r\nID Contact:.+\r\nType:.+\r\nNom:\s+(.*)",
3473+
"registrant_address": r"\[HOLDER\]\r\nID Contact:.+\r\nType:.+\r\nNom:\s+.*\r\nAdresse:\s+(.*)",
3474+
"tech_name": r"\[TECH_C\]\r\nID Contact:.+\r\nType:.+\r\nNom:\s+(.*)",
3475+
"tech_address": r"\[TECH_C\]\r\nID Contact:.+\r\nType:.+\r\nNom:\s+.*\r\nAdresse:\s+(.*)",
3476+
"registrar_name": r"Registrar: +(.+)",
3477+
"name_servers": r"Serveur de noms: +(.+)",
3478+
"creation_date": r"Date de création: +(.+)",
3479+
"updated_date": r"Dernière modification: +(.+)",
3480+
"expiration_date": r"Date d'expiration: +(.+)"
3481+
}
3482+
3483+
def __init__(self, domain: str, text: str):
3484+
if "%% NOT FOUND" in text:
3485+
raise WhoisDomainNotFoundError(text)
3486+
else:
3487+
WhoisEntry.__init__(self, domain, text, self.regex)
3488+
34653489

34663490
class WhoisCo(WhoisEntry):
34673491
"""Whois parser for .co domains"""
@@ -3471,3 +3495,4 @@ def __init__(self, domain, text):
34713495
raise WhoisDomainNotFoundError(text)
34723496
else:
34733497
WhoisEntry.__init__(self, domain, text, self.regex)
3498+

whois/whois.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ class NICClient:
111111
UKR_HOST = "whois.dotukr.com"
112112
TN_HOST = "whois.ati.tn"
113113
SBS_HOST = "whois.nic.sbs"
114+
GA_HOST = "whois.nic.ga"
114115

115116
SITE_HOST = "whois.nic.site"
116117
DESIGN_HOST = "whois.nic.design"
@@ -394,6 +395,8 @@ def choose_server(self, domain: str) -> Optional[str]:
394395
return NICClient.SG_HOST
395396
elif tld == "site":
396397
return NICClient.SITE_HOST
398+
elif tld == "ga":
399+
return NICClient.GA_HOST
397400
else:
398401
return self.findwhois_iana(tld)
399402
# server = tld + NICClient.QNICHOST_TAIL

0 commit comments

Comments
 (0)