ECE4016 Python

Java Python ECE4016 Assignment 1
In this assignment, you are required to implement a simple Local DNS Server .
Introduction
The Domain Name System (DNS) is the hierarchical and decentralized naming system used to
identify computers reachable through the Internet or other Internet Protocol (IP) networks. The
resource records contained in the DNS associate domain names with other forms of information.
These are most commonly used to map human-friendly domain names to the numerical IP
addresses computers need to locate services and devices using the underlying network
protocols, but have been extended over time to perform many other functions as well. The
Domain Name System has been an essential component of the functionality of the Internet since
1985. (wikipedia)
Iterative query and Recursive query
Detailed grading rule
The local DNS server should have the following function:Listen and accept the DNS queries
Send response to the clients
Maintain a cache(20 points). If the ip address is queried before, it should be stored in the
cache. if the answer for the query is found in cache, Local DNS Server send this answer to
Client as the DNS response
Support the DNS queries of www.baidu.com through recursive or iterative searching (30
points)
Support the DNS queries of www.example.com through recursive or iterative searching (20
points)
Support the DNS queries of www.baidu.com through public DNS server (15 points)
Support the DNS queries of www.example.com th ECE4016、Python rough public DNS server (15 points)
Requirements
Print the ip address of all the servers you pass by during the searching
Use a variable flag to indicate whether ask the public server for the IP address. When the
flag is set to be 0 , ask the public server for the IP address. When the flag is set to be 1 do
the recursive or iterative searching
Make sure your program works under ubuntu 20
Show how to execute your code
The programming language should be Python(version 3.9)
Dnspython is not allowed to use in this lab
The server is required to work on port 1234 of 127.0.0.1
Useful tools
There are some useful tools that may help you in your programming. (Dnspython is not allowed
to use in this lab)
socket
dnslibSimple test by yourself
You can use dig to test your local NDS server.
An example test code:
dig www.example.com @127.0.0.1 -p 1234
dig www.baidu.com @127.0.0.1 -p 1234
Note that this test code will be used in the evaluation of this project, make sure your program
works given this test code.
Submission
Due on 23:59, 13 Oct 2024(Late submission within 5 minitues is allowed without
punishment)
Every 24h late delivery will be deducted 10%, and 48h late delivery will be allowed at most.
After 48h, 0 marks will be given for this assignment
Honesty
We take your honesty seriously. If you are caught copying others' code, you will get an
automatic 0 in this project. Please write your own code         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值