diff options
Diffstat (limited to 'project2/proj2_s4498062/dns_server.py')
-rwxr-xr-x | project2/proj2_s4498062/dns_server.py | 38 |
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() |