69 lines
1.7 KiB
Markdown
69 lines
1.7 KiB
Markdown
# xiaomian DNS
|
||
|
||
本项目是计算机网络的课程设计项目,该项目是一个私有DNS的简单实现。
|
||
|
||
## 项目原理
|
||
|
||
在server/xiaomiandns.py中实现了DNSserver和APIserver两个类。通过server/main.py启动实例化的server。配置文件在server/serverconf.yaml
|
||
本项目选择sqlite作为数据库,存储节点信息等数据。
|
||
|
||
## 环境依赖
|
||
该项目依赖以下软件:
|
||
python 3
|
||
|
||
## 安装步骤
|
||
```console
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
#初始化数据库
|
||
python3 database/initdb.py
|
||
```
|
||
|
||
## 使用说明
|
||
```python
|
||
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功能:
|
||
```console
|
||
# Linux
|
||
sudo apt install dnsutils
|
||
dig @DNS_SERVER -p PORT DOMAIN
|
||
|
||
# Windows
|
||
nslookup DOMAIN DNS_SERVER
|
||
```
|
||

|
||

|
||
# 测试API功能
|
||
```console
|
||
# 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,不知道问题出在哪里
|
||
```
|
||

|
||

|
||

|
||

|
||
## 未实现的功能
|
||
目前只能把解析记录作为a记录返回,还未实现添加其他解析记录。
|
||
|
||
## 许可证
|
||
|
||
GNU GENERAL PUBLIC LICENSE v3
|