标题: [精]PHP 动态域名解析脚本(基于 Dnspod API)
时间: 2021-01-25发布,2021-01-25修改
GitHub 地址:https://github.com/PrintNow/php-dnspod-ddns
使用 PHP + DNSPod API 实现的 DDNS 动态域名解析,可以解析 A 和 AAAA 记录。
没有则添加记录,有则更新记录
.
├── 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 # 程序逻辑代码
git
命令克隆本项目 git clone https://github.com/PrintNow/php-dnspod-ddns
run.php
文件,请根据提示配置第 9、10、14、20、24、32、35 行代码DNSPod 的
ID
和TOKEN
获取方法:https://docs.dnspod.cn/account/5f2d466de8320f1a740d9ff3/
bin
目录说明,此目录下存放的是 获取公网 IPv6 二进制文件,作用是为了获取公网IPv6,是使用 Golang
编写的,然后使用 xgo
交叉编译成各个操作系统,不同 CPUrun.php
的 get_public_ipv6()
函数小提示:你可以只保留符合你当前操作系统的 二进制文件,但是请不要更改其名字
另外,一般情况下,如果在各大云服务厂商购买的服务器,如果选择的是 Linux 或 Windows,它们的架构基本都是 x64 的,但也不排除一些 Linux 是 arm 架构的,请自我鉴别
部署在网站上运行
访问 http://网址/run.php 即可
直接运行
cd php-dnspod-ddns
php run.php
package main
import (
"fmt"
"net"
)
func main() {
//[2400:3200::1] 是阿里DNS IPv6 地址
conn, err := net.Dial("udp", "[2400:3200::1]:53")
if err != nil {
fmt.Println("Error", err)
}
localed := conn.LocalAddr()
addr, _ := net.ResolveUDPAddr("udp", localed.String())
ip := addr.IP
fmt.Println(ip)
}
『回复列表(11|隐藏机器人聊天)』
@NowTime,好了,我给转成java了
https://gitee.com/cwayteam/java-dnspod-ddns/
不过我主要用在蒲公英+树莓派上,因为树莓派本地ipV4会经常变动,蒲公英又支持旁路由,因此我在家跟远程都是用192.168这类IP,有这个的话可以树莓派运行程序,我SSH、VNC什么的直接用dnspod域名就行了,感谢给我带来方便了
JAR包下载:java-dnspod-ddns-1.0-SNAPSHOT-jar-with-dependencies.jar(1.74 MB)
https://cway.top