Skip to main content

Whois querying and parsing of domain registration information.

Project description

Goal

  • Create a simple importable Python module which will produce parsed WHOIS data for a given domain.
  • Able to extract data for all the popular TLDs (com, org, net, ...)
  • Query a WHOIS server directly instead of going through an intermediate web service like many others do.

Example

>>> import whois
>>> w = whois.whois('example.com')
>>> w.expiration_date  # dates converted to datetime object
datetime.datetime(2022, 8, 13, 4, 0)
>>> w.text  # the content downloaded from whois server
u'\nDomain Name: EXAMPLE.COM
Registry Domain ID: 2336799_DOMAIN_COM-VRSN
...'

>>> print(w)  # print values of all found attributes    
{
  "creation_date": "1995-08-14 04:00:00",
  "expiration_date": "2022-08-13 04:00:00",
  "updated_date": "2021-08-14 07:01:44",
  "domain_name": "EXAMPLE.COM",
  "name_servers": [
      "A.IANA-SERVERS.NET",
      "B.IANA-SERVERS.NET"
  ],
  ...

Install

Install from pypi:

pip install python-whois

Or checkout latest version from repository:

git clone git@github.com:richardpenman/whois.git
pip install -r requirements.txt

Run test cases:

python -m pytest

Problems?

Pull requests are welcome!

Thanks to the many who have sent patches for additional TLDs. If you want to add or fix a TLD it's quite straightforward. See example domains in whois/parser.py

Basically each TLD has a similar format to the following:

class WhoisOrg(WhoisEntry):
  """Whois parser for .org domains
  """
  regex = {
    'domain_name':      'Domain Name: *(.+)',
    'registrar':        'Registrar: *(.+)',
    'whois_server':     'Whois Server: *(.+)',
    ...
  }

  def __init__(self, domain, text):
    if text.strip() == 'NOT FOUND':
      raise PywhoisError(text)
    else:
      WhoisEntry.__init__(self, domain, text)

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

python_whois-0.9.5.tar.gz (111.2 kB view details)

Uploaded Source

Built Distribution

python_whois-0.9.5-py3-none-any.whl (104.2 kB view details)

Uploaded Python 3

File details

Details for the file python_whois-0.9.5.tar.gz.

File metadata

  • Download URL: python_whois-0.9.5.tar.gz
  • Upload date:
  • Size: 111.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for python_whois-0.9.5.tar.gz
Algorithm Hash digest
SHA256 18968c21484752fcc4b9a5f0af477ef6b8dc2e8bb7f1bd5c33831499c0dd41ca
MD5 afb644cb9029b452916bca48a539387d
BLAKE2b-256 f55b5c0c705d14945954b23b69042c1597971da3cd6dc3ed23b96449be91d665

See more details on using hashes here.

File details

Details for the file python_whois-0.9.5-py3-none-any.whl.

File metadata

  • Download URL: python_whois-0.9.5-py3-none-any.whl
  • Upload date:
  • Size: 104.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for python_whois-0.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d435cf8012659745ce3b4e7c15428df9405648696727812d9eaacc36782d14e3
MD5 b5aeffdbada07277e139e9a068a270c4
BLAKE2b-256 be7b6a5ee6895b1bffb630da9c1a472ced41f537f2700f76e69bd62e01776e1b

See more details on using hashes here.

Supported by

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