我一直在使用VPN服务,但有些网站(twitch.tv)不允许我通过VPN连接它们。所以我查找了如何在Windows上绕过这些域的VPN并找到静态路由。
我是如何做到这一点的是在启动时运行批处理文件,它自动路由一组给定的所有ip地址 域。
这是我通过反复试验提出的。
@echo off
FOR /F "tokens=3" %%F in (
'route print ^|findstr "\<0.0.0.0\>"'
) Do if not defined DefaultGateway set "DefaultGateway=%%F"
FOR /F "tokens=2" %%F in ('nslookup twitch.tv') DO (
SET var1=%%F
)
route -p add %var1% mask 255.255.255.255 %DefaultGateway%
FOR /F "skip=5 tokens=1" %%F IN ('nslookup twitch.tv') DO (
route -p add %%F mask 255.255.255.255 %DefaultGateway%
)
我想你可以说这是一些我从SO上发现的片段创建的一些可怕的frankenstein代码。它现在有效,但我怎样才能让它更优雅?第二个和第三个FOR循环可以组合成一个吗?我如何制作它,以便如果我要添加一个新域我可以将它添加到列表而不是添加另外2个FOR循环?
答案 0 :(得分:1)
我一直在使用这个批处理文件:
set domains=twitch.tv google.com some-domain.com
for /f "tokens=3" %%a in ('route print ^| findstr "\<0.0.0.0\>"') do (
for %%d in (%domains%) do (
for /f "tokens=1,2 skip=4" %%b in ('nslookup %%d 2^>nul') do (
if "%%c"=="" (route add %%b %%a) else (route add %%c %%a)
)
)
goto done
)
:done
它抓取第一个0.0.0.0
路由的网关,并使用它来添加指定域的路由,通过nslookup
获取其IP地址。
计划在通过Task Scheduler -> Microsoft -> Windows -> Ras
与触发器On an event / Application / RasClient / 20225
建立连接时运行。