v6 做 DDNS 很香. 目前公司电脑有 v6, 然后写了个脚本会在网络变更时自动更新 cf 的 DDNS.
```bash
#!/bin/bash
# Cloudflare 账户信息
CF_API_KEY="<token>"
CF_ZONE_ID="<cf zone id>"
CF_RECORD_ID="<domain cf record id>"
TARGET_DOMAIN="<your FQDN domain>"
# LOG
log() {
d=$(date "+%Y-%m-%dT%H:%M:%S")
echo "${d}: $1"
}
reboot_NIC() {
netsh interface set interface "<网卡名称>" disable
netsh interface set interface "<网卡名称>" enable
}
get_ipv6() {
# 获取当前 IPv6 地址
IP=$(curl --connect-timeout 3 -s "
https://api-ipv6.ip.sb/ip" -A Mozilla)
if [[ -s ${IP} ]]; then
reboot_NIC
fi
log "get ip: ${IP}"
}
# 更新 Cloudflare DNS 记录
update_dns() {
res=$(curl -s -X PUT "
https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
-H "Authorization: Bearer $CF_API_KEY" \
-H "Content-Type: application/json" \
--data "{\"type\":\"AAAA\",\"name\":\"$TARGET_DOMAIN\",\"content\":\"$IP\",\"ttl\":120,\"proxied\":false}"
)
log ${res}
}
get_ipv6
# 执行更新操作
update_dns
```
然后到 Windows 的定时任务中增加一个任务.
选择事件触发, 并填写如下:
https://imgur.com/a/3kkSoLo