|
本帖最后由 mshibb@qq.com 于 2022-11-19 20:01 编辑
家里放了台电脑想要远程访问,使用ipv6非常方便,并且不需要内网穿透
但是ipv6非常难记,这时使用域名就非常有必要
下面介绍windows下通过批处理脚本获取ipv6更新到dynv6的例子
开始要准备几个windows版本命令工具
1、wget 从网站获取你的有效的ip地址
下载地址:https://jaist.dl.sourceforge.net/project/gnuwin32/wget/1.11.4-1/wget-1.11.4-1-setup.exe
也可以自行搜索其他地址
2、grep 用正则表达式,过滤IPV6地址
下载地址:https://jaist.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-setup.exe
3、sleep 调整脚本调用时间 Windows Resource Kits工具包里有这个
当然,也可以自己写个脚本控制时间
新建一个文本文档,改名为ddns.bat, 编辑它的内容如下
- @ECHO off
- @set ipaddr=
- @set domain=****.dynv6.net 自己的域名
- @set token= ddns站点给的
- @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 URLV6="http://dynv6.com/api/update?hostname=%domain%&token=%token%&ipv6=%%ipaddr%%&ipv6prefix=%%ipaddr%%"
- @set BIN=wget -t 2 --prefer-family=IPv6 --no-dns-cache --no-check-certificate
- :ip_addr
- [url=home.php?mod=space&uid=318250]@ipconfig[/url] /flushdns
- @echo ...
- echo ==from-checkip.dyndns.com-get ip addr==
- @set ipaddr=null
- for /F %%i in ('%BIN% -O- http://checkipv6.dyndns.com ^|grep -m 1 -o %IPV6_REGEX%') do (set ipaddr=%%i)
- echo updateIP=%ipaddr%
- if "%ipaddr%" == "null" (
- echo ****get ip addr is failure****
- sleep 10
- goto ip_addr
- ) else (
- goto update_ip
- )
- :update_ip
- @echo ==============================================
- @set var=null
- for /F "tokens=*" %%i in ('%BIN% -O- %URLV6%') do (set var=%%i)
- echo update message =%var%
- if "%var%" == "addresses updated" goto end
- echo ****update false****
- sleep 120
- goto ip_addr
- :end
- set oldipaddr=%ipaddr%
- echo update success
- echo sleep 1800s
- sleep 1800
- goto ip_addr
复制代码
我的执行结果
如果测试成功的话,就可以把这个批处理文件注册成系统服务,就不用手动执行了
批处理文件和命令工具,都放英文目录,中文目录没有测试过。
-------------------------
参考文章:https://blog.csdn.net/jiuweiljp/article/details/117636846
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|