Skip to content

Latest commit

 

History

History
68 lines (55 loc) · 1.68 KB

README.md

File metadata and controls

68 lines (55 loc) · 1.68 KB

xiaomian DNS

本项目是计算机网络的课程设计项目,该项目是一个私有DNS的简单实现。

项目原理

在server/xiaomiandns.py中实现了DNSserver和APIserver两个类。通过server/main.py启动实例化的server。配置文件在server/serverconf.yaml
本项目选择sqlite作为数据库,存储节点信息等数据。

环境依赖

该项目依赖以下软件:
python 3

安装步骤

# 安装依赖
pip install -r requirements.txt

#初始化数据库
python3 database/initdb.py

使用说明

python3 server/main.py

dns默认端口为53,域名api默认端口为81 需要添加数据可以通过post方法向API提交数据 usage: use POST method /add data: domian=xxxx&ip=xx.xx.xx.xx /delete data: domian=xxxx&ip=xx.xx.xx.xx 注意域名只能以xiaomian作为根域名

测试DNS功能:

# Linux
sudo apt install dnsutils
dig @DNS_SERVER -p PORT DOMAIN 

# Windows
nslookup DOMAIN DNS_SERVER

DNS1 DNS2

测试API功能

# Linux
# 添加解析
curl -d "domain=qqqwwweee.xiaomian&ip=123.12.23.34" -X POST http://10.20.117.208:81/add -i

# 删除解析
curl -d "domain=qqqwwweee.xiaomian&ip=123.12.23.34" -X POST http://10.20.117.208:81/delete -i

# Windows
Invoke-WebRequest工具一直收不到post的body,不知道问题出在哪里

API add database add API delete database delete

未实现的功能

目前只能把解析记录作为a记录返回,还未实现添加其他解析记录。

许可证

GNU GENERAL PUBLIC LICENSE v3