Skip to main content

一个用于管理多云DNS记录的命令行工具

Project description

DNSCLI

一个用于管理多云DNS记录的命令行工具,支持阿里云DNS、腾讯云DNS和Cloudflare DNS。

功能特点

  • 支持阿里云DNS、腾讯云DNS和Cloudflare DNS
  • 支持多配置管理,可同时管理多个云服务商的DNS记录
  • 支持DNS记录的增删改查,包括A、AAAA、CNAME、MX、TXT等记录类型
  • 支持Cloudflare CDN代理功能,轻松开启/关闭CDN加速
  • 命令行界面,操作简单直观,支持批量操作
  • 支持按记录类型、域名等条件筛选和查询

安装

使用 pip 安装

pip install dnscli

依赖要求

  • Python >= 3.6
  • click >= 8.0.0
  • PyYAML >= 6.0
  • prettytable >= 3.14.0
  • aliyun-python-sdk-core >= 2.13.36
  • aliyun-python-sdk-alidns >= 2.6.42
  • tencentcloud-sdk-python >= 3.0.0

配置说明

配置文件格式

配置文件默认保存在用户目录下的 .dnscli/config.yaml,格式如下:

default: aliyun  # 默认使用的配置名称
configs:
  aliyun:  # 阿里云配置
    provider: aliyun
    access_key_id: your_access_key_id
    access_key_secret: your_access_key_secret
  tencent:  # 腾讯云配置
    provider: tencent
    secret_id: your_secret_id
    secret_key: your_secret_key
  cloudflare:  # Cloudflare配置
    provider: cloudflare
    token: your_api_token

生成示例配置

dnscli config example

添加云服务商配置

# 添加阿里云配置
dnscli config add --provider aliyun

# 添加腾讯云配置
dnscli config add --provider tencent

# 添加Cloudflare配置
dnscli config add --provider cloudflare

使用示例

查看DNS记录

# 查看指定域名的所有记录
dnscli record list example.com

# 按记录类型筛选
dnscli record list example.com --type A

# 使用指定的配置
dnscli record list example.com --provider config_name

添加DNS记录

# 添加A记录
dnscli record add example.com www A "192.168.1.1"

# 添加CNAME记录
dnscli record add example.com www CNAME "cdn.example.com"

# 添加TXT记录
dnscli record add example.com @ TXT "v=spf1 include:spf.example.com ~all"

# 添加启用CDN代理的记录(仅Cloudflare)
dnscli record add example.com www A "192.168.1.1" --proxied

更新DNS记录

# 更新记录值
dnscli record update example.com <record-id> www A "192.168.1.2"

# 更新CDN代理状态(仅Cloudflare)
dnscli record update example.com <record-id> www A "192.168.1.2" --proxy

删除DNS记录

# 删除单条记录
dnscli record delete example.com <record-id>

# 批量删除记录(谨慎使用)
dnscli record delete example.com <record-id1> <record-id2>

贡献指南

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dnscli-0.1.2.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dnscli-0.1.2-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file dnscli-0.1.2.tar.gz.

File metadata

  • Download URL: dnscli-0.1.2.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dnscli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 74ee989fe636dfd3eb81ee9cffc07cdd0a486a2556a1cebacf07d5e4b4054c94
MD5 7579523d974a8968e852ae4a8d47b248
BLAKE2b-256 fee010ebcc15d1f7b534be71159b37bd33dc9875d39300a7255c8aceb9863c06

See more details on using hashes here.

File details

Details for the file dnscli-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: dnscli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dnscli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f162f4cbb343c89f4dee7b8cf8976219ed2fecb6700773d537bf2b209ac7e05
MD5 a5300bea00df878c689a8e6cf61defec
BLAKE2b-256 0a6ea411f8cba0e02144c6b562d2f620ede582b7be2b79994c6517a805e80a17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page