标题: [网络连接] 批处理根据本机IP扫描LAN中未占用的IP地址并设置,为何有些电脑出错? [打印本页]
作者: gudou 时间: 2011-9-29 03:09 标题: 批处理根据本机IP扫描LAN中未占用的IP地址并设置,为何有些电脑出错?
由于单位要手动设IP,经常有冲突,从网上找了代码,分2段:先设置一个临时的IP,根据本机临时IP扫描出局域网内可用IP地址,生成IP.TXT文件,再从IP.TXT中提取第一个(即未占用的IP)分配给本机
结果:
1、如果网线未插上会出错,不断打开ip.txt空白文件……若网线接好则没问题(WinXP下测试,笔记本有无线和有线2个网卡)
2、在同事一Win7笔记本上,网线接好,手动设置IP正常,运行下面代码仍出现第1条所说错误情况……
下面是BAT代码,求解决:- ::设置本机临时IP
- netsh interface ip set address name="本地连接" source=static addr=10.21.3.254 mask=255.255.255.0 gateway=10.21.3.1 gwmetric=1 >nul
- ::根据本机IP扫描已占用IP,生成ip.txt(必须成功连入LAN,否则出错)
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set "oldip=%%i"
- for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|findstr /c:"Default Gateway"') do (
- set "wg=%%a"
- for /f "tokens=1-3 delims=. " %%i in ("%%a") do (
- set "wd=%%i.%%j.%%k."
- for /l %%m in (1,1,255) do start /min ping /n 1 %%i.%%j.%%k.%%m
- )
- )
- arp -a|findstr "dynamic">ip.txt
-
- ::自动更换未占用的第一个IP地址
- for /l %%i in (1,1,255) do (
- set "ip=%%i"
- if "%wd%%%i" neq "%wg:~1%" findstr "\<%wd%%%i\>" ip.txt>nul||goto next
- )
- :next
- netsh interface ip set address "本地连接" static %wd%%ip% %mask% %wg:~1% 1 >nul
- echo.
- echo 配置后ip为%wd%%ip%
- echo.
- echo 完成配置,请按任意键退出。
- pause>nul
复制代码
作者: hfg1977 时间: 2011-9-29 03:44
ip.txt 在代码中就出现2次,都是写入, 并没有打开\运行 ip.txt
"不断打开ip.txt空白文件" 不可能吧?
作者: gudou 时间: 2011-9-29 18:55
绝对有可能,不!是一定!!请把网线拔掉,运行试试
会打开ip.txt空白文件并停止,如果手动关闭,会再次……
有的Win7系统接好的网络也是同样错误……
作者: gudou 时间: 2011-9-29 18:58
(
set "ip=1"
if "1" NEQ "~1wd1\>" ip.txt1>nul || goto next
)
这是停止时的CMD窗口代码
作者: gudou 时间: 2011-9-29 18:59
求能防止Win7下和XP未接网线下此类错误的代码
作者: lxzzr 时间: 2011-9-29 19:14
不大理解这个“临时IP”,是否和正常IP在同一网段?
作者: gudou 时间: 2011-9-30 23:58
不大理解这个“临时IP”,是否和正常IP在同一网段?
lxzzr 发表于 2011-9-29 19:14
当然在同一网段啊,正常情况下XP可正确设置,只要是拔掉网线就一定出错,Win7下也出现类似错。
作者: lxzzr 时间: 2011-10-1 00:09
回复 7# gudou
那你怎么确定这个“临时IP”没有被占用?
作者: gudou 时间: 2011-10-2 03:15
版主大人啊,请帮忙啊……
这个临时IP我确定不会有人占用,因为单位的IP都是我分配的大家只是知道最后的数字在50~200之间(开会说的,特意保留些)
有条件是话(做个2台电脑的LAN也可啊)请直接运行下测试,谢谢。
作者: gudou 时间: 2011-10-2 03:20
当然,可能会有2台电脑上同时运行这个批处理的可能,但先运行的不会出错啊,后运行的如出错,只要稍等下再试就OK。不会出现我所说的这样绝对的错误情况啊
作者: gudou 时间: 2011-10-2 17:18
虽然有网络方面的问题,但实际还要靠批处理达人,因为一般情况下在XP下正常的……顶起
作者: gudou 时间: 2011-10-11 18:10
请求高手帮助……
作者: ygqiang 时间: 2011-10-11 23:08
最好先解决xp系统下的问题。
win7系统,与xp系统,差别比较大,不容易解决。
楼主为什么还要考虑网线未接的情况?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |