dnspython
Par ppr le jeudi 23 août 2007, 18:42 - geeking - Lien permanent
La bibliothèque dnspython est bien pratique pour manipuler des requêtes et des réponses DNS en python.
Pour exemple, un serveur DNS sur UDP, threadé à la demande, et qui répond IN A 1.2.3.4 à toutes les requêtes :
from SocketServer import ThreadingUDPServer
from SocketServer import DatagramRequestHandler
from dns import message, rdataclass, rdatatype, rrset
class DNSRequestHandler(DatagramRequestHandler):
def handle(self):
msg = message.from_wire(self.rfile.read(1500))
reply = message.make_response(msg)
name = reply.question[0].name.to_text()
rdset = rrset.from_text(name, 0, rdataclass.IN,
rdatatype.A, '1.2.3.4')
reply.answer = [ rdset ]
self.wfile.write(reply.to_wire())
if __name__ == '__main__':
server = ThreadingUDPServer(('127.0.0.1', 5353),
DNSRequestHandler)
server.serve_forever()
