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.1.tar.gz (116.9 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.1-py3-none-any.whl (107.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: whois-pypi-0.1.tar.gz
  • Upload date:
  • Size: 116.9 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.1.tar.gz
Algorithm Hash digest
SHA256 683eb91a18b1c005fe3a275ba64ad58bf3a96f4c26e41ab68421966dcf9e0cd2
MD5 7356abdc80098d52ef620e795a6041c2
BLAKE2b-256 be255c5bab75978436957be47eca7b8fd772099c824aacdd89742a9e4b3ef9f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: whois_pypi-0.1-py3-none-any.whl
  • Upload date:
  • Size: 107.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2b4ea70d30c0fa3f909b69be5129f17a006679912561eb14d4b0709d81f7909f
MD5 dc9f1a406b78143ac78a6587cfd9c089
BLAKE2b-256 fd557c8d99d1881673c28476f2aa9da2da5103c7de6366bd276b4db414b791d8

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