Board logo

标题: [其他] 局域网中批处理如何自动更换未使用的IP? [打印本页]

作者: 愚无尽    时间: 2008-8-10 15:31     标题: 局域网中批处理如何自动更换未使用的IP?

如题!请高手帮忙。
环境:局域网
目的:通过编写批处理扫描可用的ip,然后自动进行更换,更换以后显示修改前的ip和修改后的ip
ip段:192.168.200.1-255

[ 本帖最后由 愚无尽 于 2008-8-10 15:53 编辑 ]
作者: batman    时间: 2008-8-10 15:53

这个是要分成两部分来写的,第一部分是自动获取和扫描,另一部分是自动修改。
前面出错实属本人粗心大意,已修正
  1. @echo off
  2. for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set "oldip=%%i"
  3. for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|findstr /c:"Default Gateway"') do (
  4.    set "wg=%%a"
  5.    for /f "tokens=1-3 delims=. " %%i in ("%%a") do (
  6.        set "wd=%%i.%%j.%%k."
  7.        for /l %%m in (1,1,255) do start /min ping /n 1 %%i.%%j.%%k.%%m
  8.    )
  9. )
  10. arp -a|findstr "dynamic">ip.txt
  11. for /l %%i in (1,1,255) do (
  12.     set "ip=%%i"
  13.     if "%wd%%%i" neq "%wg:~1%" findstr "\<%wd%%%i\>" ip.txt>nul||goto next
  14. )
  15. :next
  16. netsh interface ip set address "本地连接" static %wd%%ip% 255.255.255.0 %wg:~1% 1 >nul
  17. echo 配置前ip为%oldip:~1%,配置后ip为%wd%%ip%
  18. echo 完成配置,请按任意键退出。
  19. pause>nul
复制代码

[ 本帖最后由 batman 于 2008-8-10 21:19 编辑 ]
作者: 愚无尽    时间: 2008-8-10 16:01

原帖由 batman 于 2008-8-10 15:53 发表
这个是要分成两部分来写的,第一部分是自动获取和扫描,另一部分是自动修改。
书写中。。。


一方面:感谢
另一方面:还是感谢
作者: 愚无尽    时间: 2008-8-10 16:33

系统找不到文件 ’ipconfig /all 文件
错误提示
作者: batman    时间: 2008-8-10 16:38

不是的吧,你再试试看,这一部分是没有问题的啊
作者: Batcher    时间: 2008-8-11 02:08

如果局域网里面有人开了防火墙,批处理无法如此简单的判断一个IP是否可用吧?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2