diff options
author | Camil Staps | 2016-05-02 16:12:13 +0200 |
---|---|---|
committer | Camil Staps | 2016-05-02 16:12:13 +0200 |
commit | ce38b1cc4cd55e3acbc40e664e4ee473afa35b18 (patch) | |
tree | e13341cfee008f1c465b52abe441b7ade31a4505 /project2/proj2_s4498062/dns/resolver.py | |
parent | dos2unix (diff) |
pylint project 2
Diffstat (limited to 'project2/proj2_s4498062/dns/resolver.py')
-rw-r--r-- | project2/proj2_s4498062/dns/resolver.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/project2/proj2_s4498062/dns/resolver.py b/project2/proj2_s4498062/dns/resolver.py index ca4be95..8d12c1d 100644 --- a/project2/proj2_s4498062/dns/resolver.py +++ b/project2/proj2_s4498062/dns/resolver.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python2 - """ DNS Resolver This module contains a class for resolving hostnames. You will have to implement @@ -9,22 +7,22 @@ DNS server, but with a different list of servers. import socket -from dns.cache import RecordCache from dns.classes import Class from dns.message import Message, Header, Question -from dns.rcodes import RCode from dns.types import Type class Resolver(object): """ DNS resolver """ - - def __init__(self, caching, ttl): + + def __init__(self, nameservers, timeout, caching, ttl): """ Initialize the resolver - + Args: caching (bool): caching is enabled if True ttl (int): ttl of cache entries (if > 0) """ + self.nameservers = nameservers + self.timeout = timeout self.caching = caching self.ttl = ttl @@ -42,20 +40,21 @@ class Resolver(object): (str, [str], [str]): (hostname, aliaslist, ipaddrlist) """ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - sock.settimeout(timeout) + sock.settimeout(self.timeout) # Create and send query - question = dns.message.Question(hostname, Type.A, Class.IN) - header = dns.message.Header(9001, 0, 1, 0, 0, 0) + question = Question(hostname, Type.A, Class.IN) + header = Header(9001, 0, 1, 0, 0, 0) header.qr = 0 header.opcode = 0 header.rd = 1 - query = dns.message.Message(header, [question]) + query = Message(header, [question]) + #TODO should come from self.nameservers sock.sendto(query.to_bytes(), ("8.8.8.8", 53)) # Receive response data = sock.recv(512) - response = dns.message.Message.from_bytes(data) + response = Message.from_bytes(data) # Get data aliases = [] |