用shell脚本使用腾讯云DDNS

腾讯云DDNS的shell脚本

在github上光了一圈找到了一个shell脚本https://github.com/rehiy/dnspod-shell

里面包含了ipv4和ipv6所以直接拿来用就好了。

[wm_blue]mkdir /root/ddns
git clone https://github.com/rehiy/dnspod-shell.git /root/ddns[/wm_blue]

取完后cd进ddns修改ddnspod.sh按照原作者的注释修改就好,其实就是id、token、你的域名和主机记录。如果不用ipv4或ipv6就将对应的arDdnsCheck注释掉就好了。

id和token的申请就不展开说了

自己弄一个shell脚本(我为了方便)

因为我玩客云是24小时开机的但是光猫我设置的定时重启换ip,所以为了方便就缝合了一下shell

我用的ipv6所以就把ardnspod里面ipv6的部分拿了出来缝合这样两个脚本判断的ipv6就是一致的了,那么当地址发生改变了再修改域名上所记录的地址就好了。

[wm_blue]#!/bin/bash
dirfile=’/root/ddns/ip_cache’
ddns=’/root/ddns/ddnspod.sh’
#判断文件是否存在
if [ ! -f “$dirfile” ]; then
touch “$dirfile”
echo “1.1.1.1” > $dirfile
fi
lanIps=”(^$)|(^::1$)|(^[fF][eE][8-9a-fA-F])”
case $(uname) in
‘Linux’)
hostIp=$(ip -o -6 addr list | grep -Ev ‘\s(docker|lo)’ | awk ‘{print $4,substr($NF,0,length($NF)-3)}’ | sed ‘s/fore/2592000/g’ | sort -k 2 -n | cut -d/ -f1 | grep -Ev “$lanIps” | head -n 1)
;;
Darwin|FreeBSD)
hostIp=$(ifconfig | grep “inet6 ” | awk ‘{print $2}’ | grep -Ev “$lanIps” | head -n 1)
;;
esac
if [ -z “$hostIp” ]; then
if type wget >/dev/null 2>&1; then
hostIp=$(wget -q -O- https://v6.myip.la)
else
hostIp=$(curl -s https://v6.myip.la)
fi
fi
if [ -z “$hostIp” ]; then
echo “arWanIp6 – Can’t get ip address”
return 1
fi
if [ -z “$(echo $hostIp | grep -E ‘^[0-9a-fA-F:]+$’)” ]; then
echo “arWanIp6 – Invalid ip address”
return 1
fi
old_ip=`cat $dirfile`
if [ “$hostIp” = “$old_ip” ]; then
echo “ip未改变”
else
echo $hostIp > $dirfile
bash $ddns
fi[/wm_blue]

可能直接复制用不了,也不知道为啥。我把所需的文件放到文末链接。

可以用宝塔定时任务运行

[wm_blue]bash /root/ddns/ipv6.sh[/wm_blue]

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容