获取 Dynadot API Key 与 Sandbox 沙箱测试——零成本安全调试
开启 API 访问
- 登录 Dynadot 账户
- 进入「My Account」→「API Settings」
- 勾选「Enable API Access」
- 系统会生成一个 API Key(只显示一次,立即复制保存)
- 可以设置 IP 白名单(推荐,只允许指定 IP 调用 API)
API Key 的安全注意事项
- API Key = 你的密码:谁拿到了 Key 就能用你的账户操作域名(注册、续费、竞价,全部从你余额扣钱)
- 不要提交到 Git 仓库:代码里用环境变量存储,
.gitignore里排除配置文件 - 设置 IP 白名单:如果你的 API 调用来源 IP 固定(如自己的服务器),强烈建议开启
- 定期轮换:怀疑泄露时在 API Settings 里重置 Key,旧 Key 立即失效
- 不要用共享账户:每个开发者或服务器用独立的 Dynadot 子账户 + 独立 API Key
Sandbox 沙箱是什么
API Sandbox 是 Dynadot 提供的零成本测试环境。在 Sandbox 里运行的命令:
- 不会真的注册域名
- 不会真的扣钱
- 不会真的修改你的域名 DNS
- 但会返回与生产环境相同格式的 JSON 响应
这样你可以在写代码时放心调试,不会误操作真实域名。
如何使用 Sandbox
Dynadot API 文档里的示例命令可以直接加 &test=1 参数切换到沙箱模式:
https://api.dynadot.com/api3.json?key=YOUR_API_KEY&command=search&domain=testexample.com&test=1
Sandbox 模式的返回值里,注册、续费等会返回模拟的成功结果,但不会产生实际费用。
正确的 API 开发流程
1. 开 API Key + Sandbox 测试
↓
2. 在 Sandbox 里把所有命令跑通
- 先做查询命令(list_domain, search)
- 再做管理命令(set_dns, lock_domain)
- 最后做生产命令(register, renew)
↓
3. 去掉 test=1 切生产
↓
4. 先对 1 个测试域名运行
↓
5. 验证结果正确后再批量
环境变量示例
Python 项目里用环境变量存储 API Key:
import os
import requests
API_KEY = os.environ["DYNADOT_API_KEY"]
BASE_URL = "https://api.dynadot.com/api3.json"
def dynadot_command(command, params=None, test=False):
params = params or {}
params["key"] = API_KEY
params["command"] = command
if test:
params["test"] = 1
resp = requests.get(BASE_URL, params=params)
return resp.json()
Shell 里设置环境变量:
export DYNADOT_API_KEY="dyn_xxxxxxxxxxxxxxxx"
Sandbox 的局限
- 不返回真实的域名可用性状态(所有域名都返回可注册)
- 不模拟支付成功 / 失败的真实场景
- 返回值结构是对的,但数据是模拟的
- 某些复杂命令(如 Backorder 竞价)的 Sandbox 行为可能与生产有差异
所以 Sandbox 用来验证代码逻辑,实际运行前还是要在生产环境对少量真实域名测试一次。