Exemple #1
0
class DNSHosts(DNS):
    def __init__(self):
        self.server = "8.8.8.8"
        self.cm = DNSCacheManager()

    def do_hosts_lookup(self, domain):
        hosts = db.GqlQuery("SELECT * FROM Host WHERE domain = :1 LIMIT 1", domain)
        
        for host in hosts:
            if host.ip:
                return host.ip

        return CANT_RESOLVE

    def lookup(self, domain):
        address = CANT_RESOLVE
        if (len(domain) > 0):
            address = self.do_hosts_lookup(domain)

        self.cm.update(domain, address, address != CANT_RESOLVE)
        
        return address
Exemple #2
0
 def __init__(self):
     self.server = "8.8.8.8"
     self.cm = DNSCacheManager()
Exemple #3
0
 def get(self):
     conf = DNSConfig()
     cm = DNSCacheManager()
     logging.debug("Start clean old cache...")
     cm.delete_old_cache(conf.cache_cron_life)
     return
Exemple #4
0
from dns import CANT_RESOLVE
from dnsrelay import DNSWebLookupserverOcom
from dnsrelay import DNSWebBlokeOcom
from dnsrelay import WebRequestError
from dnshosts import DNSHosts
from dnshosts import DNSHostsManager
from dnscache import DNSCacheManager
from config import DNSConfig

#import base64
import httplib 
import logging

# Global object
g_config = DNSConfig()
g_cache  = DNSCacheManager()

# Load config
g_cache.set_cache_life(g_config.cache_life)

class MainHandler(webapp.RequestHandler):
    def get(self):
        domain = self.request.get("d")
        use_hosts = self.request.get_range("uh", default=0)
        use_cache = self.request.get_range("uc", default=0)

        # Compatible with dnsrelay 1.0, all query string as domain
        if (domain == ""):
            domain = self.request.query_string

        if len(domain) == 0: