Python Whois client example

In this article, we will show you how to create a simple Whois client both in Python 2 and Python 3.

Tested

  1. Python 2.7.10
  2. Python 3.4.3

1. Python 3 Whois example

In Python 3, the socket accepts bytes, so you need to encode() and decode() manually.

whois3.py

import sys
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.arin.net", 43))

#convert string to bytes, socket need bytes
s.send((sys.argv[1] + "\r\n").encode())

#declares a bytes
response = b""
while True:
    data = s.recv(4096)
    response += data
    if not data:
        break
s.close()

#convert bytes to string
print(response.decode())

Run it


$ python3 whois3.py 108.162.202.6

#...
NetRange:       108.162.192.0 - 108.162.255.255
CIDR:           108.162.192.0/18
NetName:        CLOUDFLARENET
NetHandle:      NET-108-162-192-0-1
Parent:         NET108 (NET-108-0-0-0-0)
NetType:        Direct Assignment
#...
Note
Refer to this complete Python 3 Whois client example.

2. Python 2 Whois example

In Python 2, the socket accepts string.

whois2.py

import sys
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.apnic.net", 43))
s.send(sys.argv[1] + "\r\n")

response = ""
while True:
    data = s.recv(4096)
    response += data
    if not data:
        break
s.close()

print response

Run it


$ python whois2.py 59.0.0.1

#...
inetnum:        59.0.0.0 - 59.31.255.255
netname:        KORNET
descr:          KOREA TELECOM
descr:          Network Management Center
country:        KR
admin-c:        IM76-AP
tech-c:         IM76-AP
#...
Note
Refer to this complete Python 2 Whois client example.

References

  1. Python 2 Whois client
  2. Python 3 Whois client
  3. Collecting all IPv4 WHOIS records in Python
author image

mkyong

Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities. Read all published posts by

Comments

avatar
newest oldest most voted
trackback
Python 3 TypeError: Can’t convert ‘bytes’ object to str implicitly

[…] Python Whois client example […]