NetProg Spring 2004 Extra Credit Homework

Extra Credit Homework : DNS Client
Due Date: May 1st at 11:59PM
Remote Due Date: May 8th

Submit to WebCT drop box.

Late Penalty: 100% no late submissions


Project Description

This assignment requires the creation of a DNS client program. The program should accept two command line parameters, the first is the name (or IP address) of a DNS server, the second is a hostname. Your progam should use a UDP or TCP DNS request to find the IP address of the hostname listed as the second command line parameter (you can't just call gethostbyname, etc).

Your client must tell the server not to use recursion. If the server can't answer the query directly, it will send you a list of nameservers who can answer the question - you program should ask one of the nameservers for the answer.

Your client must print out a human readable representation of each request it sends (along with information about what server the request is being sent to). This should provide a "trace" of the requests and responses. Your client must also print a final line that looks like this: Address: 128.213.1.1 where the address actually displayed (in dotted decimal notation) is the actual IPv4 address of the hostname listed on the command line (the answer). If there are multiple addresses, your client should print all of them.


Deliverables

You must submit all the source code used for your DNS client as well as a Makefile and README.

You must include in your submission a file named README that includes your name and a brief description of your submission, including the name of each file submitted along with a one line description of what is in the file.

If your code is not complete, tell us what works and what doesn't. If you are submitting code that does not compile, please tell us that as well. If any of your code was written by someone else, you are required to tell us about it (this must also be documented in the code itself). Finally, feel free to include a description of any problems you had or anything else you think might be helpful to us.


Grading

Your project will be tested to make sure it works properly. To get full credit (up to 1 full homework) for this project you must be able to handle requests that don't involve server recursion. You can get up to 75% credit for a project that tells the server to use recursion. As always, 25% of the grade depends on the actual source code (can we understand it, etc.)


Submitting your files

Submission of your homework is via WebCT dropbox for HWX. Don't send compiled code!


Resources/Links