腾讯云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]
暂无评论内容