PHP 动态域名解析脚本(基于 Dnspod API) 作者: Chuwen 时间: 2021-01-25 分类: PHP **目录** [TOC] # GitHub 项目地址 https://github.com/PrintNow/php-dnspod-ddns --- # PHP 动态域名解析(基于 Dnspod)| PHP DDNS(base on DNSpod) # 目录结构 ``` . ├── README.md ├── bin # 存放获取公网 IPv6 二进制文件 │ ├── get_public_ipv6-darwin-10.6-386 │ ├── get_public_ipv6-darwin-10.6-amd64 │ ├── get_public_ipv6-linux-386 │ ├── get_public_ipv6-linux-amd64 │ ├── get_public_ipv6-linux-arm-5 │ ├── get_public_ipv6-linux-arm-6 │ ├── get_public_ipv6-linux-arm-7 │ ├── get_public_ipv6-linux-arm64 │ ├── get_public_ipv6-linux-mips │ ├── get_public_ipv6-linux-mips64 │ ├── get_public_ipv6-linux-mips64le │ ├── get_public_ipv6-linux-mipsle │ ├── get_public_ipv6-windows-4.0-386.exe │ ├── get_public_ipv6-windows-4.0-amd64.exe │ └── get_public_ipv6.go └── run.php # 程序逻辑代码 ``` # ? 使用方法 1. ? 获取代码 1. 你可以使用 `git` 命令克隆本项目 `git clone https://github.com/PrintNow/php-dnspod-ddns` 2. 或者直接下载最新版 2. ✒ 配置 `run.php` 文件,请根据提示配置第 9、10、14、20、24、32、35 行代码 > DNSPod 的 `ID` 和 `TOKEN` 获取方法:https://docs.dnspod.cn/account/5f2d466de8320f1a740d9ff3/ 3. ? `bin` 目录说明,此目录下存放的是 **获取公网 IPv6 二进制文件**,作用是为了获取公网IPv6,是使用 `Golang` 编写的,然后使用 `xgo` 交叉编译成各个操作系统,不同 CPU 架构的二进制文件。如果你不想使用本方法获取公网 IPv6,你可以自行重新编写(需要有 PHP 编程能力) `run.php` 的 `get_public_ipv6()` 函数 > 小提示:你可以只保留符合你当前操作系统的 **二进制文件**,但是请不要更改其名字 > > 另外,一般情况下,如果在各大云服务厂商购买的服务器,如果选择的是 Linux 或 Windows,它们的架构基本都是 x64 的,但也不排除一些 Linux 是 arm 架构的,请自我鉴别 # ? 准备运行 由于本脚本使用的是 `PHP` 编写的,所以你必须安装 `php`,还要安装 `curl` 扩展。Windows 用户**不太建议使用本脚本** ## ? 简要说明如何安装 PHP > 已经安装了 PHP 请忽略 > > 根据自己的操作系统执行对应命令即可。 > > 请注意,我未做过多的测试,具体请网上搜索 CentOS: ```bash sudo yum -y install php php-devel php-cli php-curl ``` Ubuntu / Debian: ```bash sudo apt-get -y install php php-curl ``` 其它操作系统: 请自行上网搜索 ## ? 运行 > 可以部署好网站,直接通过网址访问 http://域名/run.php > 前提就是必须取消禁用 `shell_exec` 函数 ```bash cd php-dnspod-ddns php run.php ``` 运行结果 ```log E:\PhpstormProjects\php-dnspod-ddns>php runTest.php 【iton.pw.mibook】AAAA记录值:2409:8a38:6820:f10:d934:cc96:e95a:8129 记录值更新成功! ——2021-01-25 05:49:42 【iton.pw.mibook】AAAA记录值: 当前IP与解析的记录值(2409:8a38:6820:f10:d934:cc96:e95a:8129)相同,不更新 ——2021-01-25 05:50:58 ``` # 定时执行,达到 DDNS 的目的 ### ? Linux 用户可以使用 `crontab` 命令定时执行脚本,命令如下: > 请注意,我只是简要概述,你需要有一点 Linux 基础 ```bash crontab -e # 输入以下内容,表示每5分钟执行一次 */5 * * * * php /php-dnspod-ddns目录/run.php # 写入文件,请按 Ctrl+O # 然后按回车 # 然后再按 Ctrl + X 推出并保存 ``` ### Windows 用户可以使用“任务计划程序” 具体请上网搜索,不做过多说明 标签: PHP