[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理根据本机IP扫描LAN中未占用的IP地址并设置,为何有些电脑出错?

由于单位要手动设IP,经常有冲突,从网上找了代码,分2段:先设置一个临时的IP,根据本机临时IP扫描出局域网内可用IP地址,生成IP.TXT文件,再从IP.TXT中提取第一个(即未占用的IP)分配给本机

结果:
1、如果网线未插上会出错,不断打开ip.txt空白文件……若网线接好则没问题(WinXP下测试,笔记本有无线和有线2个网卡)
2、在同事一Win7笔记本上,网线接好,手动设置IP正常,运行下面代码仍出现第1条所说错误情况……

下面是BAT代码,求解决:
  1. ::设置本机临时IP
  2. 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
  3. ::根据本机IP扫描已占用IP,生成ip.txt(必须成功连入LAN,否则出错)
  4. for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set "oldip=%%i"
  5. for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|findstr /c:"Default Gateway"') do (
  6.    set "wg=%%a"
  7.    for /f "tokens=1-3 delims=. " %%i in ("%%a") do (
  8.        set "wd=%%i.%%j.%%k."
  9.        for /l %%m in (1,1,255) do start /min ping /n 1 %%i.%%j.%%k.%%m
  10.    )
  11. )
  12. arp -a|findstr "dynamic">ip.txt
  13. ::自动更换未占用的第一个IP地址
  14. for /l %%i in (1,1,255) do (
  15.     set "ip=%%i"
  16.     if "%wd%%%i" neq "%wg:~1%" findstr "\<%wd%%%i\>" ip.txt>nul||goto next
  17. )
  18. :next
  19. netsh interface ip set address "本地连接" static %wd%%ip% %mask% %wg:~1% 1 >nul
  20. echo.
  21. echo 配置后ip为%wd%%ip%
  22. echo.
  23. echo 完成配置,请按任意键退出。
  24. pause>nul
复制代码

ip.txt 在代码中就出现2次,都是写入, 并没有打开\运行 ip.txt
"不断打开ip.txt空白文件" 不可能吧?
“阿姐走了。。。可是。。。我。。。我愿意。”

TOP

绝对有可能,不!是一定!!请把网线拔掉,运行试试
会打开ip.txt空白文件并停止,如果手动关闭,会再次……

有的Win7系统接好的网络也是同样错误……

TOP

(
set "ip=1"
if "1" NEQ "~1wd1\>" ip.txt1>nul  || goto next
)

这是停止时的CMD窗口代码

TOP

求能防止Win7下和XP未接网线下此类错误的代码

TOP

不大理解这个“临时IP”,是否和正常IP在同一网段?

TOP

不大理解这个“临时IP”,是否和正常IP在同一网段?
lxzzr 发表于 2011-9-29 19:14



    当然在同一网段啊,正常情况下XP可正确设置,只要是拔掉网线就一定出错,Win7下也出现类似错。

TOP

回复 7# gudou
那你怎么确定这个“临时IP”没有被占用?

TOP

版主大人啊,请帮忙啊……

这个临时IP我确定不会有人占用,因为单位的IP都是我分配的大家只是知道最后的数字在50~200之间(开会说的,特意保留些)

有条件是话(做个2台电脑的LAN也可啊)请直接运行下测试,谢谢。

TOP

当然,可能会有2台电脑上同时运行这个批处理的可能,但先运行的不会出错啊,后运行的如出错,只要稍等下再试就OK。不会出现我所说的这样绝对的错误情况啊

TOP

虽然有网络方面的问题,但实际还要靠批处理达人,因为一般情况下在XP下正常的……顶起

TOP

请求高手帮助……

TOP

最好先解决xp系统下的问题。

win7系统,与xp系统,差别比较大,不容易解决。

楼主为什么还要考虑网线未接的情况?

TOP

返回列表