Technitium DNS Server API 使用指南:用户管理与数据统计
DnsServer Technitium DNS Server 项目地址: https://gitcode.com/gh_mirrors/dn/DnsServer
前言
Technitium DNS Server 是一款功能强大的开源DNS服务器软件,提供了完善的HTTP API接口。通过API,开发者可以轻松实现用户认证、权限管理、DNS数据统计等功能。本文将详细介绍Technitium DNS Server的用户管理API和数据统计API的使用方法。
API基础
请求方式
Technitium DNS Server的API支持GET和POST两种请求方法。当使用POST方法时,需要注意:
- 普通参数传递:Content-Type应设置为
application/x-www-form-urlencoded
- 文件上传:必须使用POST方法,Content-Type设置为
multipart/form-data
响应格式
所有API响应均为JSON格式,包含一个status
字段表示请求状态:
ok
:请求成功error
:请求失败,会包含错误详情invalid-token
:会话过期或无效token
成功响应示例:
{
"status": "ok"
}
错误响应示例:
{
"status": "error",
"errorMessage": "具体错误信息",
"stackTrace": "堆栈跟踪信息",
"innerErrorMessage": "内部异常信息"
}
用户管理API
用户登录
通过用户名和密码获取会话token,用于后续API调用。
请求URL:
http://服务器地址:端口/api/user/login?user=用户名&pass=密码&includeInfo=true
参数说明:
user
:用户名(默认管理员用户名为admin)pass
:密码(默认管理员密码为admin)includeInfo
:可选,是否包含用户相关信息
安全提示:首次使用后应立即修改默认管理员密码。
响应示例:
{
"displayName": "管理员",
"username": "admin",
"token": "会话token字符串",
"info": {
"version": "服务器版本",
"dnsServerDomain": "服务器域名",
"defaultRecordTtl": 3600,
"permissions": {
// 各模块权限信息
}
},
"status": "ok"
}
创建API Token
生成长期有效的API token,适合用于自动化脚本。
请求URL:
http://服务器地址:端口/api/user/createToken?user=用户名&pass=密码&tokenName=令牌名称
响应示例:
{
"username": "admin",
"tokenName": "MyToken1",
"token": "令牌字符串",
"status": "ok"
}
用户登出
使当前会话token失效。
请求URL:
http://服务器地址:端口/api/user/logout?token=会话token
修改密码
修改当前登录用户的密码。
请求URL:
http://服务器地址:端口/api/user/changePassword?token=会话token&pass=新密码
获取用户信息
获取当前用户的详细信息。
请求URL:
http://服务器地址:端口/api/user/profile/get?token=会话token
响应包含:
- 用户基本信息
- 会话信息
- 所属组
- 当前活动会话
数据统计API
获取统计信息
获取DNS服务器的各项统计数据。
请求URL:
http://服务器地址:端口/api/dashboard/stats/get?token=会话token&type=时间类型&utc=true
参数说明:
type
:统计时间范围(LastHour/LastDay/LastWeek/LastMonth/LastYear/Custom)utc
:是否使用UTC时间start/end
:自定义时间范围时使用
响应示例:
{
"response": {
"stats": {
"totalQueries": 925,
"totalNoError": 834,
"totalServerFailure": 1,
// 更多统计字段...
},
"mainChartData": {
"labelFormat": "时间格式",
"labels": ["时间点1", "时间点2"],
"datasets": [{
"label": "Total",
"data": [4,6,13]
}]
}
},
"status": "ok"
}
最佳实践
-
安全建议:
- 永远不要在生产环境使用默认密码
- 为自动化任务创建专用用户并分配最小必要权限
- 定期轮换API token
-
错误处理:
- 检查API响应的status字段
- 对error响应进行适当处理
- 实现token失效后的重新认证逻辑
-
性能优化:
- 合理设置统计查询时间范围,避免请求过大时间跨度的数据
- 考虑缓存不常变动的数据(如用户信息)
通过合理使用这些API,开发者可以轻松实现Technitium DNS Server的自动化管理和监控功能,构建更强大的DNS管理解决方案。
DnsServer Technitium DNS Server 项目地址: https://gitcode.com/gh_mirrors/dn/DnsServer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考