荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: flyingsand (飞沙), 信区: Internet
标  题: 自适应双网卡脚本 V2
发信站: 荔园晨风BBS站 (Sun Mar 22 10:35:10 2009), 站内

听说自校园网自动分配ip后,之前的自适应双网卡脚本还能用,鉴于对上一版略有不满,就
修改了个V2版。还是抛砖引玉。
自动获取识别ADSL和校园网的网关设置,再添加双网卡路由表。运行前ADSL和校园网要都处
于正常状态,以便获取网关信息。(已添加路由表的,可能要禁用启用网络连接或重启才能
获取网关信息)
更新:
①不再产生临时文件;
②取消识别网关失败后,设的AD默认网关192.168.1.1(多次测试只有在“正在获取网络地
址”的过程中会识别失败);
③加入获取网关失败后自动重试,解决“正在获取网络地址”的问题;
④不支持单网卡式的“软双网卡”(其实上一版也不支持,只不过这版如果只检测到一个网
络连接的网卡信息会自动重试);
⑤加入重试计数器,10次后自动退出,重试时会更新Dhcp的配置,解决内网为Dhcp的情况下
,已成功添加路由表再运行会获取不到网关的问题;
⑥由于我之前不太理解findstr命令的用法,上一版识别网关会有误判的情况,虽然在实际
中很少会碰到,现在不会了。只是在特征码方面,我由上一版还能用猜测校园网还是“
192.168.*.33”,但为了保险起见,当以“192.168.*.33”为校园网网关特征识别失败后,
就以“192.168.*.1”为AD网关特征识别,再失败就以预设的AD网关(如果没有就提供手动
输入)来区分(要预设AD网关请修改第6行的“set adsl=youradslgateway”)。预设或输
入的AD网关兼容包含空格,比如“ 192.1  6 8.1 . 1  ”是等同于“192.168.1.1”
的。如果两个网关都有所查找的相同特征码(192.168.*.33、192.168.*.1)时,则以预设
的AD网关或手动输入的AD网关来区分。如果预设的(手动输入的)AD网关与获取到的网关不
符,提供重新输入,但不作提示。
⑦鉴于识别能力的改进,把原来的识别网关后按任意键继续执行的方法,改为倒计时继续执
行,大概为5秒;
⑧“route delete 0.0.0.0”改为“route -f”,路由表方面我不是很懂,都是照搬的,我
主要是做自动获取、识别网关的;
⑨两个网关一样时,自动退出。
══════════════the code═══════════════════
@echo off
title 自适应双网卡脚本 by flyingsand
color 2f
setlocal enabledelayedexpansion
set /a n=0
set adsl=youradslgateway

:start
set ad=0
set szu=0
set gateway1=0
set gateway2=0
for /f "delims=: tokens=2" %%a in ('ipconfig^|find /i "gateway"') do (
echo %%a|findstr "[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*$">nul&& (
if !gateway1!==0 (set gateway1=%%a) else set gateway2=%%a
)|| goto retry
)
for %%b in (%gateway1%,%gateway2%) do if %%b==0 goto retry
if %gateway1%==%gateway2% (
color 4f
echo 两个网关一样!
echo 任意键退出
pause >nul
goto exit
)
cls
for %%b in (%gateway1:~1%,%gateway2:~1%) do echo %%b|findstr
"^192\.168\..*\.33$">nul&& (set szu=%%b)|| set ad=%%b
if %szu%==0 (
set ad=0
for %%b in (%gateway1:~1%,%gateway2:~1%) do echo %%b|findstr
"^192\.168\..*\.1$">nul&& (set ad=%%b)|| set szu=%%b
)
if %ad%==0 goto input
if %szu%==0 goto input

:route
for /l %%t in (5,-1,1) do (
cls
set t=%%t
set a=■
set /a b=0
echo.
echo         荔园晨风 bbs.szu.edu.cn
echo     ════════════════════════
echo         你的ADSL网关为    %ad%
echo         你的校园网网关为  %szu%
echo     ════════════════════════
echo         如果不正确请按Ctrl+C终止,或直接关闭退出
echo.
echo         继续执行倒计时 !t!
echo.
echo      ╔════════════════════╗
echo.
echo       ╚════════════════════╝
call :jindu
)
cls
route -f
route add 0.0.0.0 mask 0.0.0.0 %ad% -p
route add 210.39.0.0 mask 255.255.255.0 %szu% -p
route add 210.39.2.0 mask 255.255.255.0 %szu% -p
route add 210.39.3.0 mask 255.255.255.0 %szu% -p
route add 210.39.15.0 mask 255.255.255.0 %szu% -p
route add 58.60.63.192 mask 255.255.255.192 %szu% -p
route add 210.21.224.0 mask 255.255.255.0 %szu% -p
route add 210.21.224.224 mask 255.255.255.224 %szu% -p
route add 210.21.223.224 mask 255.255.255.224 %szu% -p
route add 192.168.0.0 mask 255.255.0.0 %szu% -p
goto exit

:input
cls
set ad=0
if not %adsl%==youradslgateway goto find
set /p adsl=请输入你的ADSL网关后按回车:
:find
set adsl=%adsl: =%
for %%b in (%gateway1:~1%,%gateway2:~1%) do echo %%b|findstr "^%adsl:.=\.%$">
nul&& (set ad=%%b)|| set szu=%%b
if %ad%==0 set adsl=youradslgateway& goto input
goto route

:retry
cls
set /a n=n+1
if %n% gtr 10 (
color 4f
echo 获取网关失败,请检查网络
echo 任意键退出
pause >nul
goto exit
)
echo 第 %n% 次重试
ipconfig /renew >nul
goto start

:jindu
ping -n 1 127.1 >nul
cls
set a=%a%■■
set /a b=b+10
echo.
echo         荔园晨风 bbs.szu.edu.cn
echo     ════════════════════════
echo         你的ADSL网关为    %ad%
echo         你的校园网网关为  %szu%
echo     ════════════════════════
echo         如果不正确请按Ctrl+C终止,或直接关闭退出
echo.
echo         继续执行倒计时 !t!
echo.
echo      ╔════════════════════╗
echo        %a%
echo       ╚════════════════════╝
if %b% geq 100 echo *& goto :eof
goto jindu

:exit
exit
--
为你两胁插刀,即使是上杜鹃山,落文山湖,亦再所不辞!


※ 修改:·flyingsand 于 Mar 24 18:05:01 修改本文·[FROM: 119.122.38.192]
※ 来源:·荔园晨风BBS站 http://bbs.szu.edu.cn·[FROM: 119.122.38.192]
附件: 自适应双网卡脚本_V2.cmd (3076 Bytes) 链接:
http://bbs.szu.edu.cn/att.php?s.4.27963.5008.cmd
全文链接:http://bbs.szu.edu.cn/bbscon.php?bid=4&id=27963


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店