tpre-python/README.md
2023-06-11 16:57:41 +08:00

69 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```
![DNS1](./dns1.png)
![DNS2](./dns2.png)
# 测试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不知道问题出在哪里
```
![API add](./api_add.png)
![database add](./database_add.png)
![API delete](./api_delete.png)
![database delete](./database_delete.png)
## 未实现的功能
目前只能把解析记录作为a记录返回还未实现添加其他解析记录。
## 许可证
GNU GENERAL PUBLIC LICENSE v3