summaryrefslogtreecommitdiff
path: root/project2/proj2_s4498062/dns/resolver.py
diff options
context:
space:
mode:
authorCamil Staps2016-05-02 16:12:13 +0200
committerCamil Staps2016-05-02 16:12:13 +0200
commitce38b1cc4cd55e3acbc40e664e4ee473afa35b18 (patch)
treee13341cfee008f1c465b52abe441b7ade31a4505 /project2/proj2_s4498062/dns/resolver.py
parentdos2unix (diff)
pylint project 2
Diffstat (limited to 'project2/proj2_s4498062/dns/resolver.py')
-rw-r--r--project2/proj2_s4498062/dns/resolver.py23
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 = []