Whois lookup behind proxy using Python
Whois lookup behind proxy using Python
So why use Pois over robust libraries like pythonwhois, pywhois...
It supports idn domains.
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).
It accepts http and socks proxies, thank to pysocks
.
It accepts user defined whois server to query desired domain.
It accepts a timeout for whois operation, some whois servers time out after user quota exceeded.
It parses result and if it finds a Registrar whois server, re-whois that server to get complete whois (thick whois).
Pois uses chardet
library to detect encoding of whois and give you correctly utf-8 decoded result.
Install dependencies
pip install -r requirements.txt
Copy pois
folder anywhere you want then import it.
First create a Pois
object
p = Pois()
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 addressusername
: proxy username if specifiedpassword
: proxy password if specifiedport
: proxy port in integerto 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 ofwhois_server
is the whois server that you want to query the domain on that server, if set to None Pois will use
the authentic whois server for that domain tldtests
for more examples
from pois import *
# without proxy
try:
p = Pois(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 = Pois(timeout=10, proxy_info=proxy_info)
result = p.fetch(domain='github.com', whois_server=None,)
except Exception as err:
print(str(err))
TldsFileError, BadDomainError, NoWhoisServerFoundError, SocketTimeoutError, SocketError, SocketBadProxyError