标题: [系统相关] 【已解决】批处理如何判断内网还是外网? [打印本页]
作者: dnvplj 时间: 2014-9-6 16:30 标题: 【已解决】批处理如何判断内网还是外网?
本帖最后由 dnvplj 于 2014-10-18 11:56 编辑
请问各位朋友:如何“判断内网还是外网”,如果是外网就自动调用“C:\SOFT\GUANJI.EXE"程序,关闭计算机。
作者: 522235677 时间: 2014-9-6 20:03
判断什么?
作者: dnvplj 时间: 2014-9-6 22:30
判断“计算机”,连的是互联网还是本公司的局域网。
作者: yu2n 时间: 2014-9-6 23:01
- REM 0.BAT
- @echo off
- ping -n 2 -w 200 223.6.6.6 >nul 2>nul && start "" "C:\SOFT\GUANJI.EXE"
- goto :eof
复制代码
作者: dnvplj 时间: 2014-9-7 12:29
4楼的朋友您好,能有个提示吗?如外网提示为:“你正在使用外网”,内网提示为:“你正在使用外网”,没有连接网络提示为:你的计算机没有连接任何网络
作者: yu2n 时间: 2014-9-7 22:56
回复 5# dnvplj - REM 0.BAT
- @echo off
-
- REM 设置外网主机地址(wwwhost)、局域网主机地址(geteway)
- set wwwhost=223.6.6.6
- set geteway=192.168.1.1
-
- ping -n 2 -w 200 %wwwhost% >nul 2>nul && (
- echo 外网
- ) || (
- ping -n 2 -w 50 %geteway% >nul 2>nul && (
- echo 内网
- ) || (
- echo 没有连接网络
- )
- )
- pause
- goto :eof
复制代码
作者: dnvplj 时间: 2014-9-8 08:57
回复 6# yu2n
首先感谢您的回复,请教两个问题:一、如果IP地址是10或172开头和192.168.6.1的地址如何判断;二、223.6.6.6是那的地址,为何要使用他。多谢了
作者: yu2n 时间: 2014-9-8 12:53
回复 7# dnvplj
你只需要给一个外网主机地址、一个局域网主机地址。
223.6.6.6 是外网主机地址,你也可以换成 www.baidu.com。
192.168.1.1 是局域网网关地址,你可以自行设置成任意局域网主机地址,只要这个局域网地址在线。
作者: dnvplj 时间: 2014-9-8 13:11
回复 8# yu2n
如果在加一条“外网主机地址”和加两个“内网网关地址”,这样写对吗?- REM 0.BAT
- @echo off
-
- REM 设置外网主机地址(wwwhost)、局域网主机地址(geteway)
- set wwwhost=223.6.6.6
- set wwwhost=www.sina.com
- set geteway=192.168.1.1
- set geteway=10.60.123.1
- set geteway=172.16.0.1
-
- ping -n 2 -w 200 %wwwhost% >nul 2>nul && (
- echo 外网
- ) || (
- ping -n 2 -w 50 %geteway% >nul 2>nul && (
- echo 内网
- ) || (
- echo 没有连接网络
- )
- )
- pause
- goto :eof
复制代码
作者: yu2n 时间: 2014-9-8 13:22
回复 9# dnvplj
这样设置变量达不到你要的效果。
同一个变量,多次赋值,只会保留最后的值。
如果只需要判断内网网,我之前的脚本就可以了。
如果要判断几个IP地址是否能够连通,那就不该这么写。
作者: dnvplj 时间: 2014-9-8 13:40
公司是一个大网,分公司是小局域网,网关都不一样,能否帮我按九楼的要求改一下吗?
作者: dnvplj 时间: 2014-9-8 13:41
回复 10# yu2n
公司是一个大网,分公司是小局域网,网关都不一样,我想用一下文件判断多个网关,能否帮我按九楼的要求改一下吗?
作者: yu2n 时间: 2014-9-8 14:36
回复 12# dnvplj
你可以针对每一个IP地址写通、不通的情况下,执行的命令。- REM 0.BAT
- @echo off
-
- set host=223.6.6.6
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- ) else (
- echo, %host% 不通
- )
-
- set host=www.sina.com
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- ) else (
- echo, %host% 不通
- )
-
- set host=192.168.1.1
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- ) else (
- echo, %host% 不通
- )
-
- set host=10.60.123.1
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- ) else (
- echo, %host% 不通
- )
-
- set host=172.16.0.1
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- ) else (
- echo, %host% 不通
- )
- pause
复制代码
作者: dnvplj 时间: 2014-9-8 15:18
回复 13# yu2n
如果通就调用:C:\SOFT\GUANJI.EXE文件,写到那个位置
作者: yu2n 时间: 2014-9-8 16:14
回复 14# dnvplj
写在每行的echo, %host% 通的下面,如下所示:- set host=172.16.0.1
- ping -n 2 -w 200 %host% >nul 2>nul
- if %ERRORLEVEL%==0 (
- echo, %host% 通
- start "" "C:\SOFT\GUANJI.EXE"
- ) else (
- echo, %host% 不通
- )
复制代码
作者: hnldwhm52 时间: 2014-9-11 23:22
haodieyixuexi!!
作者: dnvplj 时间: 2014-10-18 11:55 标题: RE: 批处理如何判断内网还是外网?
本帖最后由 dnvplj 于 2014-10-18 11:57 编辑
感谢yu2n,问题已解决。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |