Пример #1
0
def test():
    header = Header(id, flags, 1, 0, 0, 0)
    query = Query('www.google.com', Query.TYPE_A, Query.CLASS_IN)
    req = DnsRequest(header, [query])
    data = req.serialize()
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.connect((ip, 53))
    sock.settimeout(2)
    sock.sendall(data)
    sock.recv(65535)
    sock.close()
Пример #2
0
def test():
    header = Header(id, flags, 1, 0, 0, 0)
    query = Query('www.google.com', Query.TYPE_A, Query.CLASS_IN)
    req = DnsRequest(header, [query])
    data = req.serialize()
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.connect((ip, 53))
    sock.settimeout(2)
    sock.sendall(data)
    sock.recv(65535)
    sock.close()
Пример #3
0
    def handle(self):
        hosts = self.server.hosts
        master = self.server.master

        data, sock = self.request

        req = DnsRequest.parse(StringIO(data))
        domain = req.queries[0].name

        ip = hosts.get_ip(self.client_address[0], domain)
        if ip:
            self.log(
                '%s -- [%s] %s %s %s' %
                (self.client_address[0], time.ctime(), domain, 'Found', ip))
            header = req.header
            header.answer_rrs = 1
            query = req.queries[0]
            answer = Answer(domain, Answer.TYPE_A, Answer.CLASS_IN, 60, ip)
            resp = DnsResponse(header, [query], [answer]).serialize()
        else:
            self.log(
                '%s -- [%s] %s %s' %
                (self.client_address[0], time.ctime(), domain, 'Not Found'))
            resp = master.query(data)
        sock.sendto(resp, self.client_address)
Пример #4
0
 def handle(self):
     data, sock = self.request
     hosts = self.server.hosts
     
     req = DnsRequest.parse(StringIO(data))
     domain = req.queries[0].name
     
     ip = hosts.get_ip(domain) 
     if ip:
         self.log('%s -- [%s] %s %s %s' % (self.client_address[0], time.ctime(), domain, 'Found', ip))
         header = req.header
         header.flags = FLAGS_RESPONSE_OK
         header.answer_rrs = 1
         query = req.queries[0]
         answer = Answer(domain, Answer.TYPE_A, Answer.CLASS_IN, 60, ip)
         resp = DnsResponse(header, [query], [answer]).serialize()
     else:
         self.log('%s -- [%s] %s %s' % (self.client_address[0], time.ctime(), domain, 'Not Found'))
         resp = Dns(self.server.dns_server).query(data)
     sock.sendto(resp, self.client_address)