|
本帖最后由 gbam 于 2021-5-10 23:42 编辑
DDNS里面的DNSPOD还是用户名密码的老方式. 使用不了.
于是自己写了一个脚本. 把下面的脚本修改成自己的信息放的计划任务里面执行即可
脚本逻辑
1.通过PING先获取到需要解析的域名IP
2.根据第一条网关路由,获取到PPOE分配的外网IP(解决多拨获取到多个外网IP)
3.获取到本地的IP和解析的IP不一致,修改DNSPOD里面的解析记录
++++++++++++++ 以下为脚本
#!/bin/bash
######
## 20210510
## For Boco
######
Dnspod_ID="你自己的Dnspod ID"
Dnspod_TOKEN="你自己的Dnspod Token"
Dnspod_DOMAIN="你自己的主域名"
Dnspod_SUB_DOMAIN="需要提交的二级域名"
Get_Dnspod_Info()
{
Dnspod_Domain_Id=`curl -sX POST https://dnsapi.cn/Domain.Info -d "login_token=$DNSPOD_ID,$DNSPOD_TOKEN&format=json&domain=$DNSPOD_DOMAIN"|sed 's/,/\n/g'|grep -w id|awk -F "\"" '{print $4}'`
Dnspod_Record_Id=`curl -sX POST https://dnsapi.cn/Record.List -d "login_token=$DNSPOD_ID,$DNSPOD_TOKEN&format=json&domain=$DNSPOD_DOMAIN" | sed 's/{/\n/g'|grep -w "$DNSPOD_SUB_DOMAIN"|grep -w '"type":"A"'|awk -F "\"" '{print $4}'`
}
GetOldIP()
{
ping $Dnspod_SUB_DOMAIN.$Dnspod_DOMAIN -c 1 -w 1 | sed '1{s/[^(]*(//;s/).*//;q}' >/dev/shm/$Dnspod_SUB_DOMAIN.$Dnspod_DOMAIN
Dnspod_Old_Ip=`cat /dev/shm/$Dnspod_SUB_DOMAIN.$Dnspod_DOMAIN`
}
GetNewIp()
{
default_route=`ip route|grep default|head -1|awk '{print $3}'|awk -F '\.' '{print $1"."$2"."$3}'`
default_wan_ip=`ip a|grep $default_route |awk '{print $2}'`
}
IpMatching()
{
GetOldIP
GetNewIp
if [ "$Dnspod_Old_Ip" = "$default_wan_ip" ] ;then
Dnspod_Matching="1"
fi
}
Dnspod_push()
{
IpMatching
Get_Dnspod_Info
if [ "$Dnspod_Matching" != "1" ] ;then
curl -sX POST https://dnsapi.cn/Record.Modify -d "login_token=$DNSPOD_ID,$DNSPOD_TOKEN&format=json&domain_id=$Dnspod_Domain_Id&record_id=$Dnspod_Record_Id&sub_domain=$DNSPOD_SUB_DOMAIN&value=$default_wan_ip&record_type=A&record_line_id=0"
fi
}
Dnspod_push
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|