s07q 大佬有话说 :
关于ddns的脚本求助
下面这个是梅林的ddns脚本代码,目前我是每日定时执行一次,一般网络都是在凌晨发生变化
最近突然发现白天也变了,MMP
那么问题来了,如果改成5分钟执行一次,校验IP是否发生改变,改变了才执行更新的话要怎么做?不想暴力无脑更新
找个文档存IP 每更新一次就替换一次??
或者MJJ有造好的轮子分享个
openwrt的也行
谢谢
#!/bin/sh
APIKEY="apikey"
DOMAIN="domain"
HOST="host"
IP=${1}
if [ -z "$HOST" ]; then
FULLDOMAIN=$DOMAIN
else
FULLDOMAIN=$HOST.$DOMAIN
fi
# Fetch DNS record ID
RESPONSE="$(curl -s "https://www.namesilo.com/api/dnsListRecords?version=1&type=xml&key=$APIKEY&domain=$DOMAIN")"
RECORD_ID="$(echo $RESPONSE | sed -n "s/^.*<record_id>(.*)</record_id>.*<type>A</type><host>$FULLDOMAIN</host>.*$/1/p")"
# Update DNS record in Namesilo
RESPONSE="$(curl -s "https://www.namesilo.com/api/dnsUpdateRecord?version=1&type=xml&key=$APIKEY&domain=$DOMAIN&rrid=$RECORD_ID&rrhost=$HOST&rrvalue=$IP&rrttl=7207")"
# Check whether the update was successful
echo $RESPONSE | grep -E "<code>(280|300)</code>" &>/dev/null
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi
夏生啊 大佬有话说 :
5分钟一次不用改这个,改crontab不就行了.
yanaxiao 大佬有话说 :
梅林的软件中心不是有DDNS软件?
s07q 大佬有话说 :
夏生啊 大佬有话说 : 2020-10-13 21:59
5分钟一次不用改这个,改crontab不就行了.
关键是 想IP变了的时候再更新,这里就是每5分钟更一次无脑更新
s07q 大佬有话说 :
yanaxiao 大佬有话说 : 2020-10-13 22:00
梅林的软件中心不是有DDNS软件?
有的,不过我域名在namesilo 所以要用自定义脚本
并且字段更新有问题
夏生啊 大佬有话说 :
s07q 大佬有话说 : 2020-10-13 22:08
关键是 想IP变了的时候再更新,这里就是每5分钟更一次无脑更新
那就写个暂存ip的文件,每次跟上次对比就行了
banyet 大佬有话说 :
很简单, 保存一个文件记录对应的IP,更新前先检查IP是否变了。