找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16868|回复: 5

[网络连接] 批处理怎样自动判断网络请教?

[复制链接]
发表于 2010-10-29 12:17:47 | 显示全部楼层 |阅读模式
我在局域网中,通过网关上网。而且第台机器网络中的MAC通过交换机绑定的。我的这台机器分配的固定IP是上不了网。
     所以,我在局域网中通过ping可以上网机的IP,然后通过arp -a命令得到相应的mac地址,来修改自己的IP和MAC来蹭网。但是许多的时候这些机器都在运行中,这样我就不能用了。但总是有空闲的机器。

    所以,我编了一批处理,通过自动检测来判断对方是否运行,然后再将自己机器的IP和MAC“冒充”它来上网。
以下代码是代码:
  1. rem 这是判断局域网内机器是否在线。
  2. @echo off
  3. color 2e
  4. for /L %%i in (1,1,10)do ping 192.200.209.22%%i
  5. arp -a
  6. 这一段自己不会写!!

  7. :setip
  8. color 2e
  9. echo       正在设置IP,请稍候...
  10. netsh interface ip set address "本地连接" static 192.200.209.221 255.255.255.0 192.200.209.254 1
  11. echo        正在设置DNS,请稍候...
  12. netsh interface ip set dns "本地连接" static 61.178.0.94
  13. netsh interface ip add dns "本地连接" 202.100.64.68
  14. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d ************ /f
  15. reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d ************ /f
  16. exit
复制代码
************是我“冒充”其它机器的MAC.


通过ping局域网中的IP,用ARP -a来判断机器是否在线。通过查找ARP中的相关的IP就知道机器不在线。这些代码我不会写,希望高手指点迷津!!

:setIP这段代码只是我先前知道的一个可以上网机器的IP和MAC,其它上网机设置一样,只是IP和MAC是不一样的!!

[ 本帖最后由 sunhai1979 于 2010-10-29 21:27 编辑 ]
 楼主| 发表于 2010-10-29 15:31:36 | 显示全部楼层
盼高手赐教后面的判断语句!!
发表于 2010-10-29 17:16:01 | 显示全部楼层
这样基本能实现你的要求把   细节慢慢完善

  1. rem 这是判断局域网内机器是否在线。
  2. @echo off
  3. color 2e
  4. del mac.txt&del macc.txt
  5. for /L %%i in (1,1,9)do ping -n 1 -w 2 192.200.209.22%%i
  6. arp -a > mac.txt
  7. for /f "skip=3 tokens=2 delims= " %%m in (mac.txt) do (echo %%m>>macc.txt)
  8. for /f %%a in (macc.txt) do (
  9. set p=%%a
  10. goto reg
  11. )
  12. :reg
  13. color 2e
  14. echo       正在设置IP,请稍候...
  15. netsh interface ip set address "本地连接" static 192.200.209.221 255.255.255.0 192.200.209.254 1
  16. echo        正在设置DNS,请稍候...
  17. netsh interface ip set dns "本地连接" static 61.178.0.94
  18. netsh interface ip add dns "本地连接" 202.100.64.68
  19. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d %p% /f
  20. reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d %p% /f
  21. netsh interface set interface "本地连接" "disabled"
  22. netsh interface set interface "本地连接" "enabled"
  23. exit
复制代码

[ 本帖最后由 flyhsx 于 2010-10-29 17:17 编辑 ]
 楼主| 发表于 2010-10-29 22:17:00 | 显示全部楼层
原帖由 flyhsx 于 2010-10-29 17:16 发表
这样基本能实现你的要求把   细节慢慢完善
rem 这是判断局域网内机器是否在线。
@echo off
color 2e
del mac.txt&del macc.txt
for /L %%i in (1,1,9)do ping -n 1 -w 2 192.200.209.22%%i
arp -a > mac.txt
...



非常感谢回答。就是有一些问题还是不能解决。
比如:得到的macc.txt中全是在线机器的MAC地址,而这些在线机器我绝对是不能用的,不然就IP冲突了!!!
我在这个局域网中已经的IP和MAC是我早就写好批处理的,基本上网段在192.200.209.200——192.200.209.240之间,所以判断出在线机的Ip,则恰恰又不用它,不知道如何做?

我已经写好的IP-MAC后面可以有39条命令跳转。


  netsh interface set interface "本地连接" "disabled"  ,禁用网卡的命令和启用网卡的命令,我试用不了!不知道是怎么回事?提示语法不正确!

[ 本帖最后由 sunhai1979 于 2010-10-29 22:20 编辑 ]
发表于 2010-11-1 09:52:32 | 显示全部楼层
1、你有了全部,找到通的了,找不在里面的不难吧。
2、请用2003下的ifmon.dll覆盖xp下的文件就行了。
 楼主| 发表于 2010-11-2 20:58:08 | 显示全部楼层
感谢5楼提醒,这个问题已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:40 , Processed in 0.028510 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表