Advertisement
Guest User

Mock DNS server using twisted

a guest
Feb 2nd, 2020
567
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.01 KB | None | 0 0
  1. ### SERVER ###
  2. from twisted.internet import defer, reactor
  3. from twisted.names import dns, error, server, common
  4.  
  5. class MockDNSResolver(common.ResolverBase):
  6.     def _lookup(self, name, cls, type, timeout):
  7.         print("Incoming query for:", name)
  8.         record = dns.Record_A(address=b"127.0.0.5")
  9.         answer = dns.RRHeader(name=name, payload=record)
  10.         return defer.succeed(([answer], [], []))
  11.  
  12. if __name__ == "__main__":
  13.     clients = [MockDNSResolver()]
  14.     factory = server.DNSServerFactory(clients=clients)
  15.     protocol = dns.DNSDatagramProtocol(controller=factory)
  16.     reactor.listenUDP(10053, protocol)
  17.     reactor.listenTCP(10053, factory)
  18.     reactor.run()
  19.  
  20. ### CLIENT ###
  21. from twisted.internet import reactor
  22.  
  23. from twisted.names import client
  24. resolver = client.createResolver(servers=[('127.0.0.1', 10053)])
  25. d = resolver.getHostByName('does.not.exist')
  26.  
  27. def callback(result):
  28.     print('Result:', result)
  29.  
  30. d.addBoth(callback)
  31.  
  32. reactor.callLater(4, reactor.stop)
  33. reactor.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement