运行环境winserver2016,也适用于win10 专业版
- ddns注册
https://dynv6.com/
- 部署过程
所有文件放在c:\dynv6中
dynv6.bat
@echo off @set tempnum= @set ipaddr= @set oldipaddr=1.1.1.1 @set domain=xxxx.dynv6.net @set token=xxxxxxz @set IPV6_REGEX="\(\([0-9A-Fa-f]\{1,4\}:\)\{1,\}\)\(\([0-9A-Fa-f]\{1,4\}\)\{0,1\}\)\(\(:[0-9A-Fa-f]\{1,4\}\)\{1,\}\)" @set IPV4_REGEX="[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" @set URL="https://dynv6.com/api/update?hostname=%domain%&token=%token%&ipv4=%%ipaddr%%" @set URLV6="https://dynv6.com/api/update?hostname=%domain%&token=%token%&ipv6=%%ipaddr%%&ipv6prefix=%%ipaddr%%" @set BIN=C:\dynv6\wget -t 2 --prefer-family=IPv6 --no-dns-cache --no-check-certificate rem ***ipv6*** for /F %%i in ('nslookup -qt^=AAAA %domain% ns1.dynv6.com ^|C:\dynv6\grep254 -m2 -o %IPV6_REGEX%') do ( set oldipaddr=%%i) @echo Current %domain% IP Add:%oldipaddr% :start_ip1 rem @cls @echo ... @echo from ip.sb get ip address @set ip6addr=null REM ***ipv6*** for /F %%i in ('%BIN% -O- http://ip.sb ^|C:\dynv6\grep254 -m 1 -o %IPV6_REGEX%') do (set ipaddr=%%i) if "%ipaddr%" == "null" ( echo no ipv6 address C:\dynv6\sleep 5 goto start_ip2 ) else ( echo get ip address :%ipaddr%, old ip address:%oldipaddr% if NOT "%oldipaddr%" == "%ipaddr%" ( echo ---renew IP--- goto update_web_ip ) else ( echo IP no change rem C:\dynv6\sleep 180 exit goto start_ip2 )) :start_ip2 @ipconfig /flushdns @echo ... echo From checkip.dyndns.com get ip @set ipaddr=null REM ***ipv4*** rem for /F %%i in ('%BIN% -O- http://checkip.dyndns.com ^|grep254 -m 1 -o %IPV4_REGEX%') do (set ipaddr=%%i) REM ***ipv6*** for /F %%i in ('%BIN% -O- http://checkipv6.dyndns.com ^|C:\dynv6\grep254 -m 1 -o %IPV6_REGEX%') do (set ipaddr=%%i) if "%ipaddr%" == "null" ( echo NO IP address c:\dynv6\sleep 5 goto start_ip1 ) else ( echo get newe IP address:%ipaddr%, old IP address:%oldipaddr% if NOT "%oldipaddr%" == "%ipaddr%" ( echo ---renew IP--- goto update_web_ip ) else ( echo IP No Change rem C:\dynv6\sleep 180 exit goto start_ip2 )) :update_web_ip @echo ============================================== @echo ipaddr="%ipaddr%" @echo ============================================== @set var=null REM ***ipv4*** rem for /F "tokens=*" %%i in ('%BIN% -O- %URL%') do (set var=%%i) REM ***ipv6*** for /F "tokens=*" %%i in ('%BIN% -O- %URLV6%') do (set var=%%i) echo renew=%var% if "%var%" == "addresses updated" goto end echo renew fail rem C:\dynv6\sleep 120 exit goto start_ip2 :end set oldipaddr=%ipaddr% echo renew sucess rem C:\dynv6\sleep 300 exit goto start_ip2
单次启动测试运行,dynv6.bat
在客户端测试
nslookup -qt=AAAA xxxx.dynv6.net
测试通过后,部署win下的定时任务
- 设置定时任务
- 效果
本地有ipv6的情况下,通过域名访问RDP,测试通过
参考资料:
- https://blog.csdn.net/jiuweiljp/article/details/117636846
- https://blog.csdn.net/weixin_43593122/article/details/95660085
- https://blog.csdn.net/langqingj/article/details/80974632