|
wqonewq
初级用户
积分 20
发帖 8
注册 2008-4-14
状态 离线
|
『楼 主』:
请大家帮个忙写个批处理,第一个写出来送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
如果都没有的话,不执行更改网关
|
|
2008-4-15 13:59 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
2 楼』:
楼主的意思是IP地址最后位是偶数的,网关设为192.168.0.254
奇数的设为192.168.0.253
|
|
2008-4-15 14:04 |
|
|
wqonewq
初级用户
积分 20
发帖 8
注册 2008-4-14
状态 离线
|
|
2008-4-15 14:31 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
4 楼』:
自己测试吧(不适合多网卡):
@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 ]
|
批处理之家新域名:www.bathome.net |
|
2008-4-15 15:36 |
|
|
wqonewq
初级用户
积分 20
发帖 8
注册 2008-4-14
状态 离线
|
『第
5 楼』:
大哥谢谢你的帮助,但是不行的
大哥谢谢你的帮助,但是不行的
|
|
2008-4-15 20:10 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-4-15 20:13 |
|
|
wqonewq
初级用户
积分 20
发帖 8
注册 2008-4-14
状态 离线
|
『第
7 楼』:
大哥谢谢你的帮助
没有任何的提示
|
|
2008-4-15 21:55 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
8 楼』:
请仔细测试吧:
首先声明我不是为了要那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
|
批处理之家新域名:www.bathome.net |
|
2008-4-16 08:17 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
9 楼』:
这样呢?
@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
|
简单!简单!再简单! |
|
2008-4-16 09:38 |
|
|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
10 楼』:
抄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
|
|
|
2008-4-16 11:06 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
|
2008-4-16 12:08 |
|
|
wqonewq
初级用户
积分 20
发帖 8
注册 2008-4-14
状态 离线
|
『第
12 楼』:
问题解决了,谢谢,三位都可以使用
我诚心向你们学习,要不拜你们为师,按几楼来定 zw19750516大师傅 terse二师傅
zh159三师傅,徒弟在此,请受一拜
|
|
2008-4-16 14:56 |
|