summaryrefslogtreecommitdiff
path: root/project2/proj2_s4498062/dns_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'project2/proj2_s4498062/dns_server.py')
-rwxr-xr-xproject2/proj2_s4498062/dns_server.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/project2/proj2_s4498062/dns_server.py b/project2/proj2_s4498062/dns_server.py
new file mode 100755
index 0000000..3bdd04d
--- /dev/null
+++ b/project2/proj2_s4498062/dns_server.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python2
+
+""" DNS server
+
+This script contains the code for starting a DNS server.
+"""
+
+import dns.server
+
+
+def main():
+ """DNS server"""
+ # Parse arguments
+ import argparse
+ parser = argparse.ArgumentParser(description="DNS Server")
+ parser.add_argument(
+ "-c", "--caching", action="store_true",
+ help="Enable caching")
+ parser.add_argument(
+ "-t", "--ttl", metavar="time", type=int, default=0,
+ help="TTL value of cached entries (if > 0)")
+ parser.add_argument(
+ "-p", "--port", type=int, default=5300,
+ help="Port which server listens on")
+ args = parser.parse_args()
+
+ # Start server
+ server = dns.server.Server(args.port, args.caching, args.ttl)
+ server.parse_zone_file('cloogle.zone')
+
+ try:
+ server.serve()
+ except KeyboardInterrupt:
+ server.shutdown()
+ print
+
+if __name__ == "__main__":
+ main()