Skip to main content

whois client for parsing domain creation date and registrar

Project description

Build Status

WHOIS Client and Domain Creation Date Parser

spam

This is a simple WHOIS domain registry client focused around parsing a domain's Creation Date and Registrar from WHOIS domain records. This package is geared towards preventing fraud and abuse. The age of a domain has many applications in abuse prevention and fraud 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 fraudulent Registrars.

This package maintains a list of domain extension to WHOIS server mappings. Using these servers and a rule based parsing schema this package will provide you with the domain creation date of nearly any website.

Background

The motivation behind this package was that many of the WHOIS clients available spawning child processes calling the Debian 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 as rm -rf /* with a Unix child process can allow a hacker to delete your entire system or worse.

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 on WHOIS.iana.org redirection as many other WHOIS packages do. Rather, this package maintains a direct mapping of domain extensions to servers allowing you to query for domain creation age through a single request. This is a major improvement of runtime in relation to other WHOIS packages.

Installation

Python 2.x

pip install domain_validation

Python 3.x

pip3 install domain_validation

pypi

Usage

The expected use case is for finding the creation date of a domain:

from domain_validation.whois import WHOIS

whois = WHOIS("google.com")
assert str(whois.creation_date()) == "1997-09-15"
assert whois.registrar() == "MarkMonitor Inc."

whois = WHOIS("yo.cn")
assert str(whois.creation_date()) == '2003-03-17'
assert whois.registrar() == '浙江贰贰网络有限公司'

Notes

What makes this different from other WHOIS clients?

This engine does not rely on WHOIS.iana.org server 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 like other packages. Rather it uses a direct socket connection to the exact WHOIS server for the given domain extension making it secure and fast.

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 with Registrar information allowing you to maintain a blacklist of Registrars which you have found to be fraudulent.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

domain_validation-1.6.4.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

domain_validation-1.6.4-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file domain_validation-1.6.4.tar.gz.

File metadata

  • Download URL: domain_validation-1.6.4.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.7.0

File hashes

Hashes for domain_validation-1.6.4.tar.gz
Algorithm Hash digest
SHA256 6e50e4d73258d26206c0704ac8443e8328e9f60053e58a1fdca56b2a26b106f7
MD5 ae12e028052289a624956cff04e5e3e8
BLAKE2b-256 7b88ef2ea3785c76a9b504a8d0294707442f1cc52b09041ec345686d7a4877f1

See more details on using hashes here.

File details

Details for the file domain_validation-1.6.4-py3-none-any.whl.

File metadata

  • Download URL: domain_validation-1.6.4-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.7.0

File hashes

Hashes for domain_validation-1.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b53f3c7cc43025e986fa4f1f139c5ae81ff50ca83823b299fbc05643b3facf46
MD5 3b613c2f0501aa2fbcddd615976c11f3
BLAKE2b-256 fe263cb51e0a6aa7b45df53601e4381e90da93eac70f3b05cb54f53357f7525a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page