Skip to main content

Phois

ci

Whois lookup behind proxy using Python

Why use Phois over other libraries?

So why use Phois over robust libraries like pythonwhois, pywhois...

  1. It supports idn domains.

  2. It supports over 1449 tlds (thanks to dnpedia) and if it didn't find any whois server for a specific brand new tld it query whois.iana.org to get tld whois server (tlds.json file will be updated when new whois servers fetched).

  3. It accepts http and socks proxies, thank to pysocks.

  4. It accepts user defined whois server to query desired domain.

  5. It accepts a timeout for whois operation, some whois servers time out after user quota exceeded.

  6. It parses result and if it finds a Registrar whois server, re-whois that server to get complete whois (thick whois).

  7. Phois uses chardet library to detect encoding of whois and give you correctly utf-8 decoded result.

Getting started

Install dependencies

pip install phois

Copy phois folder anywhere you want then import it.

First create a Phois object

p = Phois()

You can set a timeout for whois operation by passing timeout argument, timeout must be an integer
to set proxy just pass proxy_info dict with these arguments

  • proxy_type: must be http,socks4 or socks5
  • addr: server ip or address
  • username: proxy username if specified
  • password: proxy password if specified
  • port: proxy port in integer

to fetch whois of domain just call fetch method, this method take two arguments, domain and whois_server

  • domain is the domain that you want to fetch whois of
  • whois_server is the whois server that you want to query the domain on that server, if set to None Phois will use the authentic whois server for that domain tld
    see tests for more examples
from phois import *

# without proxy
try:
    p = Phois(timeout=10)
    result = p.fetch(domain='github.com', whois_server='whois.verisign-grs.com')
    # or
    result = p.fetch(domain='github.com',)
except Exception as err:
    print(str(err))
    
    
# with proxy
try:
    proxy_info = {'proxy_type':'http','addr':'localhost', 'port':8118}
    p = Phois(timeout=10, proxy_info=proxy_info)
    result = p.fetch(domain='github.com', whois_server=None,)
except Exception as err:
    print(str(err))
    
    
  • In many cases, when we query registrar whois server, we get full information but sometimes the registry whois sever gives us full information like 'php.guru', so we return both results

Exceptions

TldsFileError
BadDomainError
NoWhoisServerFoundError
SocketTimeoutError
SocketError
SocketBadProxyError

Metadata

Release files for Phois 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Phois 0.1.0
File Size Uploaded
phois-0.1.0.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Phois 0.1.0
File Interpreter ABI Platform
phois-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.2 kB

Release files / phois-0.1.0.tar.gz

Download URL phois-0.1.0.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
22b361a062349206716a1d21c6b86b188ef833a2156a7869c874b0c09d318e82
BLAKE2b-256 checksum
How to use checksums
eb07871a64d3e8fa1ec3ab5e71255b6abb8d2ca50f200404e4986a10f7e767b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / phois-0.1.0-py3-none-any.whl

Download URL phois-0.1.0-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d26c72f19c0305ee53c2bbcbaefb5e4cfe1087f222df7443ce6df278488e9caa
BLAKE2b-256 checksum
How to use checksums
0900b6d3ab501511a6fe4879a8e661b7983de1ec7b128608e8b664981e58e7c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page