[ create a new paste ] login | about

Link: http://codepad.org/jjkTtMub    [ raw code | fork ]

Python, pasted on Mar 18:
#!/usr/bin/env python


from __future__ import print_function


import sys


from dnslib import A, RR
from dnslib import DNSHeader, DNSRecord, QTYPE


from circuits import handler
from circuits.net.sockets import UDPServer


class DNSServer(UDPServer):

    @handler("read")
    def _on_read(self, peer, data):
        # DNS Request Data
        request = DNSRecord.parse(data)
        id = request.header.id
        qname = request.q.qname

        print("DNS Request for qname({0:s})".format(qname), file=sys.stderr)

        reply = DNSRecord(
            DNSHeader(id=id, qr=1, aa=1, ra=1),
            q=request.q
        )

        # Add A Record
        reply.add_answer(RR(qname, QTYPE.A, rdata=A("127.0.0.1")))

        # Send To Client
        #self.fire(write(peer, reply.pack()))
        return reply.pack()


server = DNSServer(("0.0.0.0", 5353))
from circuits import Debugger
Debugger().register(server)
server.run()


Create a new paste based on this one


Comments: