예제 #1
0
def resolve(dns, nameserver):
    global resolved

    #additional args for ports
    nameserver_ports = {}

    for i in nameserver:
        if ":" in i:
            #if ports are different remove default port
            ip, port = i.split(":")
            port = int(port)
            ind = nameserver.index(i)
            nameserver[ind] = i.split(":")[0]
            nameserver_ports[ip] = port

    # if dnserver is not reachable
    exetime = 0
    try:
        resolver = Resolver()
        resolver._nameservers = nameserver
        resolver.nameserver_ports = nameserver_ports
        resolver.timeout = 10

        #Starting time
        c_time = datetime.now()
        resolver.resolve('example.com', 'A')

        #Time excuted
        exetime = int((datetime.now() - c_time).total_seconds() * 1000)
    except Exception as e:
        #print(e)
        pass

    resolved[dns]['IPv4'] = exetime