2015-11-04 98 views

回答

5

看看dnslib模塊,具體來說,dnslib.server

>>> class TestResolver: 
    ...  def resolve(self,request,handler): 
    ...   reply = request.reply() 
    ...   reply.add_answer(*RR.fromZone("abc.def. 60 A 1.2.3.4")) 
    ...   return reply 
    >>> resolver = TestResolver() 
    >>> server = DNSServer(resolver,port=8053,address="localhost",logger=logger,tcp=True) 
    >>> server.start_thread() 
    >>> a = q.send("localhost",8053,tcp=True) 
    Request: [...] (tcp)/'abc.def.' (A) 
    Reply: [...] (tcp)/'abc.def.' (A)/RRs: A 
    >>> print(DNSRecord.parse(a)) 
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... 
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
    ;; QUESTION SECTION: 
    ;abc.def.      IN  A 
    ;; ANSWER SECTION: 
    abc.def.    60  IN  A  1.2.3.4 
    >>> server.stop() 
相關問題