Python实现简易的DNS服务器

from dnslib import *
from dnslib.server import *
import sys
import time

class TestResolver:
    def resolve(self,request,handler):

        reply = request.reply()
        qname = request.q.qname
        qtype = request.q.qtype
			
        if qname == 'www.test123.com' and QTYPE[qtype]=='A':
            answer = RR(rname=qname,ttl=60, rdata=A('192.7.0.2'))
            reply.add_answer(answer)
            return reply
        ## 调价其他的域名对应的IP,在这里加if语句增加
        
        ## 未匹配到时的返回值
        reply.header.rcode = getattr(RCODE,'NXDOMAIN')
        return reply
 

def main():
    resolver = TestResolver()
    logger = DNSLogger(prefix=False)
    dns_server = DNSServer(resolver,port=53, address='0.0.0.0', logger=logger)
    dns_server.start_thread()
    try:
        while True:
            time.sleep(600)
            sys.stderr.flush()
            sys.stdout.flush()
    except KeyboardInterrupt:
        sys.exit(0)
if __name__ == '__main__':
    main()

 

你可能感兴趣的:(Python学习笔记,python)