Package: domain-validation
WHOIS Client and Domain Creation Date ParserThis is a simpleWHOISdomain registry client focused around parsing a domain'sCreation DateandRegistrarfromWHOISdomain records.
This package is geared towards preventing fraud and abuse. The age of a domain has many applications inabuse preventionandfraud detection.
Spammers often register on sites using newly created domains. Being able to quickly identify the age of a domain has
numerous applications in fighting fraudulent activity. Similarly, the Registrar name of a domain can be very useful in fighting fraud by
allowing an organization to implement blacklisting functionality of known fraudulentRegistrars.This package maintains a list of domain extension toWHOISserver mappings. Using these servers and a
rule based parsing schema this package will provide you with the domain creation date of nearly any website.BackgroundThe motivation behind this package was that many of theWHOISclients available spawning child processes calling
theDebian WHOIS package.
This is a security vulnerability when working at an enterprise level.
Suppose a spammer decides to register with an email address such as,elliot@;rm -rf /*testing a domain such asrm -rf /*with a Unix child process can allow a hacker to delete your entire system orworse.By using a direct socket connection to the proper WHOIS server based on the domain extension this package is able to
achieve greater security than other available clients.This package does not rely onWHOIS.iana.orgredirection as many other WHOIS packages do.
Rather, this package maintains a direct mapping of domain extensions to servers allowing you to query fordomain creation agethrough a single request.
This is a major improvement of runtime in relation to other WHOIS packages.InstallationPython 2.xpip install domain_validationPython 3.xpip3 install domain_validationUsageThe expected use case is for finding the creation date of a domain:fromdomain_validation.whoisimportWHOISwhois=WHOIS("google.com")assertstr(whois.creation_date())=="1997-09-15"assertwhois.registrar()=="MarkMonitor Inc."whois=WHOIS("yo.cn")assertstr(whois.creation_date())=='2003-03-17'assertwhois.registrar()=='浙江贰贰网络有限公司'NotesWhat makes this different from other WHOIS clients?This engine does not rely onWHOIS.iana.orgserver redirect, rather it maintains it's own domain extension to server
mapping which makes query time faster. Furthermore, it does not rely on the the Debian WHOIS package, meaning it will not
spawn a child process and use the Debian Package likeother packages.
Rather it uses a direct socket connection to the exact WHOIS server for the given domain extension making itsecureandfast.Why would I use this?Perhaps you are a small business or an enterprise organization facing fraudulent activity through spammy account sign-ups.
One signal representing the validity of an email domain is the age of the domain. This package will allow you to query for the
age of nearly any domain from and domain extension, securely and rapidly within the safety of a Python environment (no child proccess).
Furthermore, if you are using a rule based fraud system, this package provides you withRegistrarinformation allowing you to maintain a
blacklist of Registrars which you have found to be fraudulent.