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.

  • Works with Python 2 & 3

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 whois-pypi

Or checkout latest version from repository:

$ git clone https://github.com/Paradoxxs/pywhois

Note that then you will need to manually install the futures module, which allows supporting both Python 2 & 3:

$ pip install futures

Run test cases for python 2 & 3:

$ python -m unittest discover test
.............
----------------------------------------------------------------------
Ran 13 tests in 0.812s

OK

$ python3 -m unittest discover test
.............
----------------------------------------------------------------------
Ran 13 tests in 1.431s

OK

SOCKS Proxy support requirements:

$ pip install PySocks
............
---------------------------------------------------------------------
$ export SOCKS=socksproxy.someplace.com:8080

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

whois-pypi-0.2.tar.gz (115.2 kB view details)

Uploaded Source

Built Distribution

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

whois_pypi-0.2-py3-none-any.whl (107.1 kB view details)

Uploaded Python 3

File details

Details for the file whois-pypi-0.2.tar.gz.

File metadata

  • Download URL: whois-pypi-0.2.tar.gz
  • Upload date:
  • Size: 115.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for whois-pypi-0.2.tar.gz
Algorithm Hash digest
SHA256 6ba8a1dd4ba1eda0c8d063773df1bf250a954b3a0544f0b72068cefe2c12ac04
MD5 8e12b33a8b35a8d59a4c92ddc8c55284
BLAKE2b-256 a6e537a4d05438481940c02bf97dc25f37ab4cd6ec32e9e24bfd4bf8a12c35d1

See more details on using hashes here.

File details

Details for the file whois_pypi-0.2-py3-none-any.whl.

File metadata

  • Download URL: whois_pypi-0.2-py3-none-any.whl
  • Upload date:
  • Size: 107.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for whois_pypi-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e58c3fa6e4d2da66ea24a702cd5c60195aa1bd0086afa0a63218a4afa2348085
MD5 1fb27f8d6f4000c7ac0e6be60b709016
BLAKE2b-256 48b64b79c78c9a2a869bb7bfb0590628127d0285cedb3fc181b0c4cf26d5982d

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