|
- import socket
- import json
-
- MSS = 20476 # MSS = Server buffer size (20480) - data header size (4)
-
- class Query:
- type = ''
- key = ''
-
- def __init__(self, type, key):
- self.type = type
- self.key = key
-
- def json_str(self):
- return json.dumps(self.__dict__)
-
- def await_response(s):
- data, addr = s.recvfrom(MSS)
- print(f'Server: {json.loads(data)}')
-
- if __name__ == "__main__":
- server_ip, server_port = ('127.0.0.1', 50000)
-
- queries = (Query('A', 'example.com'),
- Query('PTR', '1.2.3.4'),
- Query('CNAME', 'moodle.com'))
-
- with socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) as s:
- for query in queries:
- print(f'Performing query {query.json_str()}:')
- s.sendto(query.json_str().encode(), (server_ip, server_port))
-
- await_response(s)
-
|