利用悠悠域名api使用定时curl实现ddns功能

2023-09-17 12:58 来源: 开发部
随着ipv6普及,利用悠悠域名api使用定时curl使用ddns功能,修改域名解析地址为网卡ipv6地址,实现外网访问家里nas文件。

创建一个脚本文件,比如 post_url.sh,并确保它具有执行权限:

touch post_url.sh
chmod +x post_url.sh

 

编辑 post_url.sh 脚本文件,将以下内容添加到文件中:

#!/bin/bash

apiuser='ux101'
apikey='AO4zfeag5584a26ge65p9SlN'
time=$(date +%s) # 获取当前时间的10位时间戳
ssapikey=$(echo -n "$apiuser$apikey$time" | md5sum | cut -d' ' -f1)

url='https://www.yooym.com/home/dns/dnsfun.php'
post_data="ssapiuser=$apiuser&ssapikey=$ssapikey&apitime=$time&ac=adddns&ID=510865&rr=ql&type=AAAA&line=%E9%BB%98%E8%AE%A4&value=$(ip -6 addr show dev eth0 | grep -oP '(?<=inet6\s)[\da-f:]+' | head -n 1)&mx=-&ttl=600&record_id=85547444600632320"

curl -X POST -d "$post_data" "$url"

 

请确保替换 eth0 为你的系统上的网卡接口,通常是 eth0。

 

其中下面代码是获取网卡 eth0 的本机地址,请使用 ifconfig 命令查看本机网卡信息

$(ip -6 addr show dev eth0 | grep -oP '(?<=inet6\s)[\da-f:]+' | head -n 1) # 获取IPv6地址

$(ip -4 addr show dev eth0 | grep -oP '(?<=inet\s)\d+\.\d+\.\d+\.\d+' | head -n 1) # 获取IPv4地址

在上述脚本中,ipv4_address 变量将包含系统的IPv4地址,然后将其包含在POST请求的数据中。注意,将 type 参数更改为 A,以指示这是一个IPv4地址

 

保存并退出编辑器。

 

使用 crontab -e 命令来编辑你的用户的cron作业:

crontab -e

 

在打开的编辑器中,添加一行来定义定时任务,例如,如果你想每6小时执行一次,可以添加:

0 */6 * * * /path/to/post_url.sh

 

请替换 /path/to/post_url.sh 为你实际脚本文件的路径。

保存并退出编辑器。cron会在每小时的0分钟每6小时执行 post_url.sh 脚本。

现在,Ubuntu将会每6小时自动执行 post_url.sh 脚本,该脚本会发送POST请求到指定的URL,并包含生成的数据。确保脚本文件路径和cron定时任务设置都正确。

 

 

本教程实现具体修改域名解析地址为本机网卡 出口ipv6 地址,其它功能请根据需要修改,本教程来自 CHAT-GPT。

 

推荐内容