@@ -427,6 +427,8 @@ def load(domain: str, text: str):
427427 return WhoisCm (domain , text )
428428 elif domain .endswith (".hu" ):
429429 return WhoisHu (domain , text )
430+ elif domain .endswith (".xyz" ):
431+ return WhoisXyz (domain , text )
430432 else :
431433 return WhoisEntry (domain , text )
432434
@@ -446,7 +448,7 @@ class WhoisCl(WhoisEntry):
446448 }
447449
448450 def __init__ (self , domain : str , text : str ):
449- if 'No match for "' in text :
451+ if 'No match for "' in text or "no entries found" in text :
450452 raise WhoisDomainNotFoundError (text )
451453 else :
452454 WhoisEntry .__init__ (
@@ -474,7 +476,7 @@ class WhoisSG(WhoisEntry):
474476 }
475477
476478 def __init__ (self , domain : str , text : str ):
477- if "Domain Not Found" in text :
479+ if "Domain Not Found" in text or text . lstrip (). startswith ( 'Not found: ' ) :
478480 raise WhoisDomainNotFoundError (text )
479481 else :
480482 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -511,7 +513,7 @@ class WhoisPe(WhoisEntry):
511513 }
512514
513515 def __init__ (self , domain : str , text : str ):
514- if 'No match for "' in text :
516+ if 'No match for "' in text or "Domain Status: No Object Found" in text :
515517 raise WhoisDomainNotFoundError (text )
516518 else :
517519 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -521,7 +523,7 @@ class WhoisSpace(WhoisEntry):
521523 """Whois parser for .space domains"""
522524
523525 def __init__ (self , domain : str , text : str ):
524- if 'No match for "' in text :
526+ if 'No match for "' in text or "The queried object does not exist: DOMAIN NOT FOUND" in text :
525527 raise WhoisDomainNotFoundError (text )
526528 else :
527529 WhoisEntry .__init__ (self , domain , text )
@@ -588,7 +590,7 @@ class WhoisRo(WhoisEntry):
588590 }
589591
590592 def __init__ (self , domain : str , text : str ):
591- if text .strip () == "NOT FOUND" :
593+ if text .strip () == "NOT FOUND" or "No entries found for the selected source" in text :
592594 raise WhoisDomainNotFoundError (text )
593595 else :
594596 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -672,7 +674,7 @@ class WhoisLt(WhoisEntry):
672674 }
673675
674676 def __init__ (self , domain : str , text : str ):
675- if text .endswith ("available" ):
677+ if text .rstrip (). endswith ("available" ):
676678 raise WhoisDomainNotFoundError (text )
677679 else :
678680 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -917,7 +919,7 @@ class WhoisMe(WhoisEntry):
917919 }
918920
919921 def __init__ (self , domain : str , text : str ):
920- if "NOT FOUND" in text :
922+ if "NOT FOUND" in text or "Domain not found" in text :
921923 raise WhoisDomainNotFoundError (text )
922924 else :
923925 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -1155,7 +1157,7 @@ class WhoisEe(WhoisEntry):
11551157 }
11561158
11571159 def __init__ (self , domain : str , text : str ):
1158- if text .strip () == "Domain not found" :
1160+ if text .strip (). startswith ( "Domain not found" ) :
11591161 raise WhoisDomainNotFoundError (text )
11601162 else :
11611163 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -1220,7 +1222,7 @@ class WhoisKr(WhoisEntry):
12201222 }
12211223
12221224 def __init__ (self , domain : str , text : str ):
1223- if text .endswith (" no match" ):
1225+ if text .endswith (" no match" ) or "The requested domain was not found" in text :
12241226 raise WhoisDomainNotFoundError (text )
12251227 else :
12261228 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -1266,7 +1268,7 @@ class WhoisBg(WhoisEntry):
12661268 dayfirst = True
12671269
12681270 def __init__ (self , domain : str , text : str ):
1269- if "does not exist in database!" in text :
1271+ if "does not exist in database!" in text or "registration status: available" in text :
12701272 raise WhoisDomainNotFoundError (text )
12711273 else :
12721274 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2003,7 +2005,7 @@ class WhoisMx(WhoisEntry):
20032005 }
20042006
20052007 def __init__ (self , domain : str , text : str ):
2006- if "not found." in text :
2008+ if "not found." in text or "Object_Not_Found" in text :
20072009 raise WhoisDomainNotFoundError (text )
20082010 else :
20092011 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2040,7 +2042,7 @@ class WhoisTw(WhoisEntry):
20402042 }
20412043
20422044 def __init__ (self , domain : str , text : str ):
2043- if "not found." in text :
2045+ if "not found." in text or "No Found" in text :
20442046 raise WhoisDomainNotFoundError (text )
20452047 else :
20462048 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2075,7 +2077,7 @@ class WhoisTr(WhoisEntry):
20752077 }
20762078
20772079 def __init__ (self , domain : str , text : str ):
2078- if "not found." in text :
2080+ if "not found." in text or "No match found for " in text :
20792081 raise WhoisDomainNotFoundError (text )
20802082 else :
20812083 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2206,6 +2208,7 @@ class WhoisIl(WhoisEntry):
22062208 regex : dict [str , str ] = {
22072209 "domain_name" : r"domain: *(.+)" ,
22082210 "expiration_date" : r"validity: *(.+)" ,
2211+ "creation_date" : r"assigned: *(.+)" ,
22092212 "registrant_name" : r"person: *(.+)" ,
22102213 "registrant_address" : r"address *(.+)" ,
22112214 "dnssec" : r"DNSSEC: *(.+)" ,
@@ -2297,7 +2300,7 @@ class WhoisIe(WhoisEntry):
22972300 }
22982301
22992302 def __init__ (self , domain : str , text : str ):
2300- if "no matching objects" in text :
2303+ if "no matching objects" in text or "Not found: " in text :
23012304 raise WhoisDomainNotFoundError (text )
23022305 else :
23032306 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2311,7 +2314,7 @@ class WhoisNz(WhoisEntry):
23112314 "registrar" : r"(?:Registrar|registrar_name):\s*([^\n\r]+)" ,
23122315 "registrar_url" : r"Registrar URL:\s*([^\n\r]+)" ,
23132316 "updated_date" : r"(?:Updated Date|domain_datelastmodified):\s*([^\n\r]+)" ,
2314- "creation_date" : r"(?:Creation Date|domain_dateregistered):\s*([^\n\r]+)" ,
2317+ "creation_date" : r"(?:Creation Date|domain_dateregistered|created ):\s*([^\n\r]+)" ,
23152318 "expiration_date" : r"domain_datebilleduntil:\s*([^\n\r]+)" ,
23162319 "name_servers" : r"(?:Name Server|ns_name_\d*):\s*([^\n\r]+)" , # list of name servers
23172320 "status" : r"(?:Domain Status|status):\s*([^\n\r]+)" , # list of statuses
@@ -2411,7 +2414,7 @@ class WhoisOnline(WhoisEntry):
24112414 }
24122415
24132416 def __init__ (self , domain : str , text : str ):
2414- if "Not found:" in text :
2417+ if "Not found:" in text or "The queried object does not exist: DOMAIN NOT FOUND" in text :
24152418 raise WhoisDomainNotFoundError (text )
24162419 else :
24172420 WhoisEntry .__init__ (self , domain , text , self .regex )
@@ -2530,7 +2533,7 @@ class WhoisUA(WhoisEntry):
25302533 }
25312534
25322535 def __init__ (self , domain : str , text : str ):
2533- if "ERROR: No entries found" in text :
2536+ if "No entries found" in text :
25342537 raise WhoisDomainNotFoundError (text )
25352538 else :
25362539 WhoisEntry .__init__ (
@@ -3538,7 +3541,7 @@ class WhoisCo(WhoisEntry):
35383541 """Whois parser for .co domains"""
35393542
35403543 def __init__ (self , domain , text ):
3541- if "No Data Found" in text :
3544+ if "No Data Found" in text or 'The queried object does not exist: DOMAIN NOT FOUND' in text :
35423545 raise WhoisDomainNotFoundError (text )
35433546 else :
35443547 WhoisEntry .__init__ (self , domain , text , self .regex )
0 commit comments