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

[系统相关] 【已解决】批处理如何判断内网还是外网?

本帖最后由 dnvplj 于 2014-10-18 11:56 编辑

请问各位朋友:如何“判断内网还是外网”,如果是外网就自动调用“C:\SOFT\GUANJI.EXE"程序,关闭计算机。

判断什么?

TOP

判断“计算机”,连的是互联网还是本公司的局域网。

TOP

  1. REM 0.BAT
  2. @echo off
  3. ping -n 2 -w 200 223.6.6.6 >nul 2>nul && start "" "C:\SOFT\GUANJI.EXE"
  4. goto :eof
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

4楼的朋友您好,能有个提示吗?如外网提示为:“你正在使用外网”,内网提示为:“你正在使用外网”,没有连接网络提示为:你的计算机没有连接任何网络

TOP

回复 5# dnvplj
  1. REM 0.BAT
  2. @echo off
  3. REM 设置外网主机地址(wwwhost)、局域网主机地址(geteway)
  4. set wwwhost=223.6.6.6
  5. set geteway=192.168.1.1
  6. ping -n 2 -w 200 %wwwhost% >nul 2>nul && (
  7.   echo 外网
  8. ) || (
  9.   ping -n 2 -w 50 %geteway% >nul 2>nul && (
  10.     echo 内网
  11.   ) || (
  12.     echo 没有连接网络
  13.   )
  14. )
  15. pause
  16. goto :eof
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 6# yu2n
首先感谢您的回复,请教两个问题:一、如果IP地址是10或172开头和192.168.6.1的地址如何判断;二、223.6.6.6是那的地址,为何要使用他。多谢了

TOP

回复 7# dnvplj
你只需要给一个外网主机地址、一个局域网主机地址。
223.6.6.6 是外网主机地址,你也可以换成 www.baidu.com
192.168.1.1 是局域网网关地址,你可以自行设置成任意局域网主机地址,只要这个局域网地址在线。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 8# yu2n
如果在加一条“外网主机地址”和加两个“内网网关地址”,这样写对吗?
  1. REM 0.BAT
  2. @echo off
  3. REM 设置外网主机地址(wwwhost)、局域网主机地址(geteway)
  4. set wwwhost=223.6.6.6
  5. set wwwhost=www.sina.com
  6. set geteway=192.168.1.1
  7. set geteway=10.60.123.1
  8. set geteway=172.16.0.1
  9. ping -n 2 -w 200 %wwwhost% >nul 2>nul && (
  10.   echo 外网
  11. ) || (
  12.   ping -n 2 -w 50 %geteway% >nul 2>nul && (
  13.     echo 内网
  14.   ) || (
  15.     echo 没有连接网络
  16.   )
  17. )
  18. pause
  19. goto :eof
复制代码

TOP

回复 9# dnvplj
这样设置变量达不到你要的效果。
同一个变量,多次赋值,只会保留最后的值。
如果只需要判断内网网,我之前的脚本就可以了。
如果要判断几个IP地址是否能够连通,那就不该这么写。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

公司是一个大网,分公司是小局域网,网关都不一样,能否帮我按九楼的要求改一下吗?

TOP

回复 10# yu2n
公司是一个大网,分公司是小局域网,网关都不一样,我想用一下文件判断多个网关,能否帮我按九楼的要求改一下吗?

TOP

回复 12# dnvplj
你可以针对每一个IP地址写通、不通的情况下,执行的命令。
  1. REM 0.BAT
  2. @echo off
  3. set host=223.6.6.6
  4. ping -n 2 -w 200 %host% >nul 2>nul
  5. if %ERRORLEVEL%==0 (
  6.   echo, %host% 通
  7. ) else (
  8.   echo, %host% 不通
  9. )
  10. set host=www.sina.com
  11. ping -n 2 -w 200 %host% >nul 2>nul
  12. if %ERRORLEVEL%==0 (
  13.   echo, %host% 通
  14. ) else (
  15.   echo, %host% 不通
  16. )
  17. set host=192.168.1.1
  18. ping -n 2 -w 200 %host% >nul 2>nul
  19. if %ERRORLEVEL%==0 (
  20.   echo, %host% 通
  21. ) else (
  22.   echo, %host% 不通
  23. )
  24. set host=10.60.123.1
  25. ping -n 2 -w 200 %host% >nul 2>nul
  26. if %ERRORLEVEL%==0 (
  27.   echo, %host% 通
  28. ) else (
  29.   echo, %host% 不通
  30. )
  31. set host=172.16.0.1
  32. ping -n 2 -w 200 %host% >nul 2>nul
  33. if %ERRORLEVEL%==0 (
  34.   echo, %host% 通
  35. ) else (
  36.   echo, %host% 不通
  37. )
  38. pause
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 13# yu2n
如果通就调用:C:\SOFT\GUANJI.EXE文件,写到那个位置

TOP

回复 14# dnvplj

写在每行的echo, %host% 通的下面,如下所示:
  1. set host=172.16.0.1
  2. ping -n 2 -w 200 %host% >nul 2>nul
  3. if %ERRORLEVEL%==0 (
  4.   echo, %host% 通
  5.   start "" "C:\SOFT\GUANJI.EXE"
  6. ) else (
  7.   echo, %host% 不通
  8. )
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表