Skip to content

Instantly share code, notes, and snippets.

@armonge
Last active December 15, 2015 23:09
Show Gist options
  • Save armonge/5337994 to your computer and use it in GitHub Desktop.
Save armonge/5337994 to your computer and use it in GitHub Desktop.
Simple whois server
import os
import sqlite3 as sqlite
import socket
HOST = ''
PORT = 1043
BUFSIZE = 1024
ADDR = (HOST,PORT)
WORKDIR = '/home/armonge/tmp/whois-python/'
def lookup(sqlconnection, domain):
cursor = sqlconnection.cursor()
cursor.execute('SELECT data FROM whois WHERE id=?', [domain])
row = cursor.fetchone()
if row:
result = row[0]
else:
result = "NO MATCH"
return result
def run():
sqlcon = sqlite.connect(os.path.join(WORKDIR, 'whois.db'))
serv = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
try:
serv.bind((ADDR))
serv.listen(5)
while True:
conn, addr = serv.accept()
print 'connected from:', addr
data = conn.recv(BUFSIZE)
data = data.rstrip()
print 'data:' + repr(data)
conn.send(lookup(sqlcon, data))
conn.close()
finally:
sqlcon.close()
serv.close()
if __name__ == '__main__':
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment