windows下更新dynv6的批处理

windows下更新dynv6的批处理

 

@echo off
@set tempnum=
@set ipaddr=
@set oldipaddr=
rem domain=你注册的域名(dynv6.net 提供多种域名后缀可自行修改)
@set domain=
rem token=dynv6.net 提供的钥匙token
@set token=
@set URLV6="http://dynv6.com/api/update?hostname=%domain%&token=%token%&ipv6=%%ipaddr%%"
@set BIN=D:\tools\dynv6\wget -t 2 --prefer-family=IPv6 --no-dns-cache --no-check-certificate -U=AGENT

 
:start_ip1
@ipconfig /flushdns
@ipconfig /renew
rem @cls
@echo ... 
@echo 1.####从ip.sb获得地址####
@set ip6addr=null
 
REM ***ipv6***
for /F %%i in ('%BIN% -O- https://api-ipv6.ip.sb/ip') do (set ipaddr=%%i)
 
if "%ipaddr%" == "null" (
echo 没有IPV6地址或获得IPV6地址失败
ping 127.0.0.1 -n 5 > nul
goto start_ip1
) else (
echo 获得IP地址:%ipaddr%,旧IP地址:%oldipaddr%
if NOT "%oldipaddr%" == "%ipaddr%" (
echo ---更新IP---
goto update_web_ip
) else (
echo IP没有改变,120秒后重新检测
ping 127.0.0.1 -n 120 > nul
goto start_ip1
))

 
:update_web_ip
@echo ==============================================
@echo ipaddr="%ipaddr%"
@echo ==============================================
@set var=null
 
REM ***ipv6***
for /F "tokens=*" %%i in ('%BIN% -O- %URLV6%') do (set var=%%i)
 
echo Update info=%var%
if "%var%" == "addresses updated" goto end
echo 更新失败,60秒后重新检测
ping 127.0.0.1 -n 60 > nul
goto start_ip1
 
:end
set oldipaddr=%ipaddr%
echo 更新数据成功,60秒后重新检测
ping 127.0.0.1 -n 60 > nul
goto start_ip1
  

  

posted @ 2022-04-25 08:49  慕炎  阅读(1015)  评论(0)    收藏  举报