标题: [系统相关] [已解决]批处理如何检测网络连接是否连通 [打印本页]
作者: hsaytech 时间: 2009-10-2 00:43 标题: [已解决]批处理如何检测网络连接是否连通
[i=s] 本帖最后由 pcl_test 于 2016-9-24 14:08 编辑 [/i]
请求高手帮忙写个解决网络问题的批处理鄙人是一房东,现在深圳管理着5栋房子,自然就要负责给房间里面的住户拉网线,可是最近总是有住户说上不了网而打电话叫我上门去看,作为房东,我要把自己的工作做好,我们这边是没电梯的,所以5楼7楼什么的经常要爬的满头大汗。但是,99%都不是我的网络有问题,所以,我就希望有这么一个批处理,能帮住户判断到底是电脑设置的问题还是我的网络的问题,这个批处理的思路如下:
1 打开批处理后,显示的是作者信息以及批处理的作用!
2 暂停
3 执行ping 127.0.0.1命令
4 结果 [a] Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 提示:网卡以及网络设置正常。 [跳转到第6步]
[b] 其他信息 提示:网卡问题或者本地连接配置错误,请检查您的电脑设置。
5 暂停
6 ping 本机。[先提取本机的IP地址,再调用IP过来ping。]
7 结果 [a]Reply from 192.168.1.*: bytes=32 time<1ms TTL=128 提示:网络连接 [跳转到第9步]
[b]其他信息 提示:******,请检查***
8 暂停
9 ping 192.168.1.200 [192.168.1.200是电影服务器,所以用这个]
10 结果 [a]Reply from 192.168.1.200: bytes=32 time<1ms TTL=128 提示:访问局域网正常 [跳转到第12步]
[b]其他信息 提示:无法访问局域网,请检查网线连接或联系管理员
11 暂停
12 ping 192.168.1.1 [192.168.1.1是路由器的IP地址]
13 结果 [a]Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 提示:访问路由器正常 [跳转到第15步]
[b]其他信息 提示:无法访问路由器,请联系管理员。
14 暂停
15 ping 202.96.134.134 [202.96.134.134是当前电信服务器]
16 结果 [a]Reply from 202.96.134.134: bytes=32 time<1ms TTL=128 提示:连接网络正常 [跳转到第18步]
[b]其他信息 无法连接电信服务器,请检查您的电脑
17 暂停
18 ping www.baidu.com [www.baidu.com是百度的网站]
19 结果 [a]Reply from *.*.*.*: bytes=32 time<1ms TTL=128 提示:您的电脑可以正常访问网络 [跳转到第21步]
[b]其他信息 提示:无法访问百度,请检查您的电脑.
20 暂停
21 您的电脑可以正常访问网络,请尝试删除IE临时文件,如浏览器的cookies,再次访问网络. 如果还是不能正常访问,请联系管理员.
以上是基本内容,其中"暂停"前必须显示出提示,这样方便用户识别,由于思维能力有限,故有多处存在错误,恳请各位专家斧正或者提出修改意见.已利于中国批处理事业的发展,谢谢大家!
作者: canyuexiaolang 时间: 2009-10-2 06:50
写是很好好写了啦
就是麻烦了一点
本人不是高手
你先等等
今天回老家
如果可以的话
你加我的QQ号
如果没人给你写
最迟明天中午给你写
如果有人帮你写出来了
以后有什么问题可以问我
我的QQ:312641104记住咯
作者: canyuexiaolang 时间: 2009-10-2 06:59
- @echo off
- echo.
- echo 作者:XXXXXXXXXXXX
- echo 作用:我还真不知道
- echo.
- pause
- ::找IP地址
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
- ping%ip%
- ::此处无错误,IP找出来前面带一个空格
- pause
复制代码
实在想不下去怎么对比了
作者: Seter 时间: 2009-10-2 09:15
- @echo off&echo Made By Seter,BBs.bathome.net&pause>nul&setlocal ENABLEDELAYEDEXPANSION
- call :f 127.0.0.1 网卡问题或者本地连接配置错误,请检查您的电脑设置。 网卡以及网络设置正常。
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
- call :f%ip% ******,请检查*** 网络连接
- call :f 192.168.1.200 无法访问局域网,请检查网线连接或联系管理员 访问局域网正常
- call :f 50 192.168.1.1 无法访问路由器,请联系管理员。 访问路由器正常
- call :f 50 202.96.134.134 无法连接电信服务器,请检查您的电脑 连接网络正常
- call :f www.baidu.com 无法访问百度,请检查您的电脑 您的电脑可以正常访问网络,请尝试删除IE临时文件,如浏览器的cookies,再次访问网络.
- echo 如果还是不能正常访问,请联系管理员.&pause>nul&exit
- :f
- for /f "delims=" %%i in ('ping -n 1 -w %1 ^| find "Request timed out."') do echo %2&pause>nul&exit
- echo %3&pause>nul
复制代码
小错误:find而不是find /i
[ 本帖最后由 Seter 于 2009-10-3 08:49 编辑 ]
作者: 基拉freedom 时间: 2009-10-2 10:11
弱弱得问一下
这一个
for /f "delims=" %%i in ('ping -n 1 -w %1 ^| find /i "Request timed out."') do echo %2&pause>nul&exit
要是find找到了 显示%2的内容 否则不显示 这个是为什么 怎么实现的.......
作者: defanive 时间: 2009-10-2 11:04 标题: 回复 5楼 的帖子
我的理解是,找不到字串符find不输出任何信息,所以for的循环集为空,自然不循环执行do的语句。。。
不知理解是否有误。。。
作者: hsaytech 时间: 2009-10-2 13:43 标题: 回复 2楼 的帖子
那麻烦高手帮忙!
最好把可能的情况全部写出来,能让人一看就知道那种情况是什么问题,
这需要网络技术与写批处理都强的朋友来解决!
在此先谢谢你了!
作者: hsaytech 时间: 2009-10-2 13:48 标题: 回复 3楼 的帖子
这个批处理是可以测试ping本机,可是,
我们是需要大家一起来完成这个批处理,
让他成为一个强大的批处理工具,可以帮助用户实现傻瓜式电脑网络故障检测。
请高手再次出手!
作者: hsaytech 时间: 2009-10-2 13:50 标题: 回复 4楼 的帖子
我试了这个批处理,好象不可以检测网络,我把网线拔了居然说还可以访问局域网
请高手再次出手!
作者: hsaytech 时间: 2009-10-2 13:52 标题: 回复 5楼 的帖子
谢谢提意见,
请编写出来晒晒,呵呵
作者: hsaytech 时间: 2009-10-2 13:53 标题: 回复 6楼 的帖子
谢谢你参与,请帮忙写一个。
为中国网络事业做贡献!
作者: bhsx 时间: 2009-10-2 15:41
-
- @echo off
- ping 127.0.0.1 >nul&&echo 网卡以及网络设置正常。||(echo网卡问题或者本地连接配置错误,请检查您的电脑设置。&pause)
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
- ping%ip% >nul&&echo 网络连接||(echo ******,请检查***&pause)
- ping 192.168.1.200>nul&&echo 访问局域网正常||(echo 无法访问局域网,请检查网线连接或联系管理员&pause)
- ping 192.168.1.1 >nul&&echo 访问路由器正常||(echo 无法访问路由器,请联系管理员。&pause)
- ping 202.96.134.134 >nul&&echo 连接网络正常||(echo无法连接电信服务器,请检查您的电脑&pause)
- ping www.baidu.com >nul&&echo 您的电脑可以正常访问网络||(echo无法访问百度,请检查您的电脑.&pause)
- pause
- echo 如果还是不能正常访问,请联系管理员.&pause
复制代码
[ 本帖最后由 bhsx 于 2009-10-2 15:43 编辑 ]
作者: canyuexiaolang 时间: 2009-10-2 17:26 标题: 回复 12楼 的帖子
- ping%ip% >nul&&echo 网络连接||(echo ******,请检查***&pause)
复制代码
好像一个无用的IP也可以通过吧
作者: Seter 时间: 2009-10-3 08:46
原帖由 hsaytech 于 2009-10-2 13:50 发表
我试了这个批处理,好象不可以检测网络,我把网线拔了居然说还可以访问局域网
请高手再次出手!
完全按照你的要求写的,如果出错请修改要求!
作者: Seter 时间: 2009-10-3 08:47
原帖由 defanive 于 2009-10-2 11:04 发表
我的理解是,找不到字串符find不输出任何信息,所以for的循环集为空,自然不循环执行do的语句。。。
不知理解是否有误。。。
DEF不错,基础知识有进步~
作者: lxzzr 时间: 2009-10-3 14:16
原帖由 hsaytech 于 2009-10-2 13:48 发表
让他成为一个强大的批处理工具,可以帮助用户实现傻瓜式电脑网络故障检测。
在这里插一句:应该判断计算机所处的环境,比如。单网卡或是双网卡,ADSL拨号,还是局域网,等等....
作者: hsaytech 时间: 2009-10-3 14:23 标题: 回复 14楼 的帖子
其实我就是希望得到一个可以解决网络问题的批处理,而大侠可能是太关注于我的表达能力而忽略了我的本意,请大侠再次出手,谢谢!
作者: hsaytech 时间: 2009-10-3 14:25 标题: 回复 16楼 的帖子
如果可以判断,那估计他就不叫批处理了。
就是一般的网络,单网卡,通过路由上网的。
高手再看下!谢谢!
作者: hlzj88 时间: 2009-10-3 17:09
- @echo off&&color 2e
- echo 本工具能指导你检查电脑不能上网的问题
- echo.
- echo 目的1 先查本机是否有问题
- echo.
- ping 127.0.0.1 >nul&&echo 本机网卡无损坏且驱动正确&&echo. ||(echo 首先问题在本机 (网卡是否禁用,停用或损坏)或者本地连接配置错误,是否正确驱动,请检查您的电脑设置&&echo.&pause&echo.)
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
- ping%ip% >nul&&echo 这是你本机的IP地址%ip%,且本机网络正常&&echo. || (echo 没有设置IP,请设置***&pause>nul)
- echo 现在检查访问路由器情况
- echo.
- ping 192.168.1.1 >nul&&echo 访问路由器正常||(echo 你 的 IP 里 有 192.168.1.* 吗,要求*号为小于254,且不能为1,不同就是ip设置错误,请重设!&&echo.&&echo 到路由器都不通,还想上互联网,那是不可能的,请先检查网线是否插好,网卡灯是否亮(在电脑后面有唯一的能亮的)&&echo.&&echo 如果这些都没有问题,请按任意键继续检查&pause)
- echo.&&echo 目的2 检查网络是否正常
- echo.
- ping 202.96.134.134 >nul&&echo 连接电信服务器正常||(ping 192.168.1.1>nul&&echo 到路由器正常,仍无法连互联网,可能局域网出口有问题,也可能是你的电信联通公司有问题 || echo 到路由器都不通,还想上互联网,那是不可能的,请重头开始检测&echo.&pause)
- echo.&&ping www.baidu.com >nul&&echo 您的电脑可以正常连接网络(如不能打开网页,就是你电脑系统的问题)||(echo 无法访问百度,请联系管理员(管理员太辛苦了,请备好礼品)&echo.&pause)
- echo.&&pause
复制代码
借用楼上各位的,修改后或许能用
作者: Batcher 时间: 2009-10-3 17:16 标题: 回复 18楼 的帖子
如果批处理连这点信息都判断不了,那才真的不叫批处理了。
^_^
作者: hsaytech 时间: 2009-10-4 00:42 标题: 回复 19楼 的帖子
很不错,可是还是有判断失误的,地方,比如,我拔了网线它会提示找不带IP地址!
相信19楼的高手一定精通网络和编程方面的,麻烦再次出手指导,在此表示感谢!
作者: hsaytech 时间: 2009-10-4 23:34 标题: 高手还会再次出现吗?
斑竹,帮下忙,再请写高手出来帮忙写下
我做了这么久的电脑,还没看见有人能写出很全面的出来的。
觉得比较好的就是深度的一个优化工具很不错,比较全面,希望斑竹出面帮忙!
作者: hsaytech 时间: 2009-10-5 12:42 标题: 网络判断批处理
还有了解网络 与编程的高手出来完成这个批处理吗 ?
已经有人写的比较接近了 。
怎么感觉像在拍卖一样,还有高价格的吗 ?
确实,我们要找到出最高价格的!
谁来 ?
作者: ZJHJ 时间: 2009-10-5 19:23
按自己要求修改吧- @echo off
- ::网络检查 wangwei qq 251485609
- if exist bfwjcf\tqxx.txt goto jcwl
- if not exist bfwjcf md bfwjcf
- ipconfig /all >bfwjcf\tqxx.txt
- :jcwl
- find "Description" bfwjcf\tqxx.txt >xm.txt
- for /f "tokens=2 delims=:" %%J in (xm.txt) do @echo %%J>wk.txt
- ::计算机网卡
- for /f "tokens=2 delims= " %%J in (wk.txt) do set cxm=%%J
- ::IP 地址
- find "IP Address" bfwjcf\tqxx.txt >xm.txt
- for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm2=%%J
- ::子网掩码
- find "Subnet Mask" bfwjcf\tqxx.txt >xm.txt
- for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm3=%%J
- ::默认网关
- find "Default Gateway" bfwjcf\tqxx.txt >xm.txt
- for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm4=%%J
- ::DNS 首选服务器
- find "DNS Servers" bfwjcf\tqxx.txt >xm.txt
- for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm5=%%J
- ::DNS 备用服务器
- for /f "tokens=1* delims=:" %%i in ('findstr /n . bfwjcf\tqxx.txt') do if %%i equ 20 @echo %%j>Phy.txt
- for /f " tokens=1" %%M in (Phy.txt) do set cxm6=%%M
- del xm.txt
- del wk.txt
- del Phy.txt
- cls
- :: 检查外网连接
- (ping /n 1 [url]www.163.com[/url])|findstr /i /r "TTL"
- if %errorlevel%==0 echo 远程 IP 外网([url]www.163.com[/url])连接正常。&&pause&&goto eof
- cls
- @echo.
- @echo 测试: 远程无信息返回,外网有故障或未能连接
- @echo.
- :: 检查本机DNS服务器设置
- (ping /n 1 %cxm5%)|findstr /i /r "TTL"
- if %errorlevel%==0 echo 本机DNS服务器设置%cxm5%正常 &&pause&&goto eof
- cls
- @echo.
- @echo 测试: 远程无信息返回,检查本机DNS设置(%cxm5%)或外网(路由进线)故障
- @echo.
- :: 检查本机 IP 地址
- (ping /n 1 %cxm2%)|findstr /i /r "TTL"
- if %errorlevel%==0 @echo 测试: 本机IP地址(%cxm2%)及路由正常&&pause&&goto eof
- cls
- @echo.
- @echo 测试: 本机IP地址(%cxm2%)无信息返回。请检查 IP 设置、网卡及电缆接口。
- @echo.
- :: 检查网关路由器
- (ping /n 1 %cxm4%)|findstr /i /r "TTL"
- if %errorlevel%==0 @echo 测试: 路由器默认网关(%cxm4%)正常&&pause&&goto eof
- cls
- @echo.
- @echo 测试: 路由器网关(%cxm4%)无信息返回。请检查网关设置、网卡及电缆接口。
- @echo.
- :: 检查本机 TCP/IP 协议
- (ping -n 1 127.1)|findstr /i /r "TTL"
- if %errorlevel%==0 @echo 测试: 本机TCP/IP协议(127.0.0.1)正常; 检查结束。&&pause&&goto eof
- cls
- @echo 测试: 本机TCP/IP协议(127.0.0.1)无信息返回
- @echo 检查结束。
- pause>nul
复制代码
作者: hsaytech 时间: 2009-10-6 09:53 标题: 很不错,待我测试下!
谢谢这位朋友,我测试下!
希望可以完全解决问题!
追求完美的东西才是令世人惊叹的!谢谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |