标题: 请大家帮个忙写个批处理,第一个写出来送10个Q币
[打印本页]
作者: wqonewq
时间: 2008-4-15 13:59
标题: 请大家帮个忙写个批处理,第一个写出来送10个Q币
请大家帮个忙写个批处理,第一个写出来送10个Q币
意思如下,
按IP分配网关,(网关2个)
比如192.168.0.1 对应的网关是192.168.0.253
192.168.0.2 对应的网关是192.168.0.254
192.168.0.3 对应的网关是192.168.0.253
192.168.0.4 对应的网关是192.168.0.254
192.168.0.5 对应的网关是192.168.0.253
192.168.0.6 对应的网关是192.168.0.254
192.168.0.7 对应的网关是192.168.0.253
192.168.0.8 对应的网关是192.168.0.254
或者尾数为1.3.5.7.9的IP,对应网关是192.168.0.253
尾数为0.2.4.6.8的IP,对应网关是192.168.0.254
如果这样实现不了,就按MAC分配网关,
比如把mac全部写入两个文本
在检测第一文本是不是有这组MAC有的话分配网关为192.168.0.253
在检测第二文本是不是有这组MAC有的话分配网关为192.168.0.254
如果都没有的话,不执行更改网关
作者: abcd
时间: 2008-4-15 14:04
楼主的意思是IP地址最后位是偶数的,网关设为192.168.0.254
奇数的设为192.168.0.253
作者: wqonewq
时间: 2008-4-15 14:31
标题: 是的,麻烦你了
是的,麻烦你了
作者: bat-zw
时间: 2008-4-15 15:36
标题: 自己测试吧(不适合多网卡):
@echo off
for /f "delims=:" %%i in ('ipconfig ^| findstr "Ethernet"') do set var=%%i
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find "IP Address"') do set str=%%i
for /l %%i in (0,2,8) do if "192.168.0.%%i"=="%str: =%" netsh interface ip set address "%var:~17%" gateway=192.168.0.254 gwmetric=1
for /l %%i in (1,2,9) do if "192.168.0.%%i"=="%str: =%" netsh interface ip set address "%var:~17%" gateway=192.168.0.253 gwmetric=1
pause>nul
在实际应用中把最后一句收为echo 配置完成&ping /n 2 127.1>nul&goto :eof
[
Last edited by zw19750516 on 2008-4-15 at 04:01 PM ]
作者: wqonewq
时间: 2008-4-15 20:10
标题: 大哥谢谢你的帮助,但是不行的
大哥谢谢你的帮助,但是不行的
作者: bat-zw
时间: 2008-4-15 20:13
是报错还是怎么的,请讲清楚,我正好改
作者: wqonewq
时间: 2008-4-15 21:55
标题: 大哥谢谢你的帮助
没有任何的提示
作者: bat-zw
时间: 2008-4-16 08:17
标题: 请仔细测试吧:
首先声明我不是为了要那10个Q币,而是为了根本上解决问题,我又在局域网中做了测试,证明是这个方案可行的。注:运行是不要打开网络配置界面不然会出错,请在运行完后查看网关,以下是我的测试码:
@echo off
for /f "delims=:" %%i in ('ipconfig ^| findstr "Ethernet"') do set var=%%i
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find "IP Address"') do set str=%%i
for /l %%i in (0,2,254) do if "134.163.144.%%i"=="%str: =%" netsh interface ip set address "%var:~17%" gateway=134.163.144.2 gwmetric=1
for /l %%i in (1,2,255) do if "134.163.144.%%i"=="%str: =%" netsh interface ip set address "%var:~17%" gateway=134.163.144.1 gwmetric=1
echo 配置成功&ping /n 2 127.1>nul&goto :eof
作者: terse
时间: 2008-4-16 09:38
这样呢?
@echo off
for /f "tokens=3 delims=: " %%i in ('ipconfig /all^|find "Ethernet adapter"') do set link=%%i
for /f "tokens=15" %%i in ('ipconfig /all^|find /i "Address"') do set ip=%%i
for /l %%i in (1,2,9) do if %ip:~-2% equ %%i goto nets
netsh interface ip set address name="%link%" gateway=192.168.0.254 gwmetric=0
pause&goto :eof
:nets
netsh interface ip set address name="%link%" gateway=192.168.0.253 gwmetric=0
pause
作者: zh159
时间: 2008-4-16 11:06
抄LS各位的,之所以不用"tokens=3 delims=: "获取连接名称,是因为怕有人用包含空格的连接名称
@echo off
for /f "delims=:" %%i in ('ipconfig^|findstr "Ethernet"') do set LinkName=%%i
set LinkName=%LinkName:~17%
for /f "tokens=6 delims=:. " %%i in ('ipconfig^|findstr "IP Address"') do set IPAdd=%%i
set /a str=%IPAdd% %% 2
rem if "%str%" == "1" netsh interface ip set address name="%LinkName%" gateway=192.168.0.253 gwmetric=0
rem if "%str%" == "0" netsh interface ip set address name="%LinkName%" gateway=192.168.0.254 gwmetric=0
pause>nul
作者: plp626
时间: 2008-4-16 12:08
体力劳动啊
作者: wqonewq
时间: 2008-4-16 14:56
标题: 问题解决了,谢谢,三位都可以使用
我诚心向你们学习,要不拜你们为师,按几楼来定 zw19750516大师傅 terse二师傅
zh159三师傅,徒弟在此,请受一拜