Board logo

标题: [系统相关] [已解决]批处理如何检测网络连接是否连通 [打印本页]

作者: 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

  1. @echo off
  2. echo.
  3. echo 作者:XXXXXXXXXXXX
  4. echo 作用:我还真不知道
  5. echo.
  6. pause
  7. ::找IP地址
  8. for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
  9. ping%ip%
  10. ::此处无错误,IP找出来前面带一个空格
  11. pause
复制代码
实在想不下去怎么对比了
作者: Seter    时间: 2009-10-2 09:15

  1. @echo off&echo Made By Seter,BBs.bathome.net&pause>nul&setlocal ENABLEDELAYEDEXPANSION
  2. call :f 127.0.0.1 网卡问题或者本地连接配置错误,请检查您的电脑设置。 网卡以及网络设置正常。
  3. for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
  4. call :f%ip% ******,请检查*** 网络连接
  5. call :f 192.168.1.200 无法访问局域网,请检查网线连接或联系管理员 访问局域网正常
  6. call :f 50 192.168.1.1 无法访问路由器,请联系管理员。 访问路由器正常
  7. call :f 50 202.96.134.134 无法连接电信服务器,请检查您的电脑 连接网络正常
  8. call :f www.baidu.com 无法访问百度,请检查您的电脑 您的电脑可以正常访问网络,请尝试删除IE临时文件,如浏览器的cookies,再次访问网络.
  9. echo 如果还是不能正常访问,请联系管理员.&pause>nul&exit
  10. :f
  11. for /f "delims=" %%i in ('ping -n 1 -w %1 ^| find "Request timed out."') do echo %2&pause>nul&exit
  12. 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

  1. @echo off
  2. ping 127.0.0.1 >nul&&echo 网卡以及网络设置正常。||(echo网卡问题或者本地连接配置错误,请检查您的电脑设置。&pause)
  3. for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
  4. ping%ip% >nul&&echo 网络连接||(echo ******,请检查***&pause)
  5. ping 192.168.1.200>nul&&echo 访问局域网正常||(echo 无法访问局域网,请检查网线连接或联系管理员&pause)
  6. ping 192.168.1.1 >nul&&echo 访问路由器正常||(echo 无法访问路由器,请联系管理员。&pause)
  7. ping 202.96.134.134 >nul&&echo 连接网络正常||(echo无法连接电信服务器,请检查您的电脑&pause)
  8. ping www.baidu.com >nul&&echo 您的电脑可以正常访问网络||(echo无法访问百度,请检查您的电脑.&pause)
  9. pause
  10. echo 如果还是不能正常访问,请联系管理员.&pause
复制代码

[ 本帖最后由 bhsx 于 2009-10-2 15:43 编辑 ]
作者: canyuexiaolang    时间: 2009-10-2 17:26     标题: 回复 12楼 的帖子

  1. 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

  1. @echo off&&color 2e
  2. echo 本工具能指导你检查电脑不能上网的问题
  3. echo.
  4. echo 目的1  先查本机是否有问题
  5. echo.
  6. ping 127.0.0.1 >nul&&echo 本机网卡无损坏且驱动正确&&echo. ||(echo 首先问题在本机 (网卡是否禁用,停用或损坏)或者本地连接配置错误,是否正确驱动,请检查您的电脑设置&&echo.&pause&echo.)
  7. for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
  8. ping%ip% >nul&&echo 这是你本机的IP地址%ip%,且本机网络正常&&echo. || (echo 没有设置IP,请设置***&pause>nul)
  9. echo 现在检查访问路由器情况
  10. echo.
  11. ping 192.168.1.1 >nul&&echo 访问路由器正常||(echo   你 的 IP 里 有   192.168.1.* 吗,要求*号为小于254,且不能为1,不同就是ip设置错误,请重设!&&echo.&&echo    到路由器都不通,还想上互联网,那是不可能的,请先检查网线是否插好,网卡灯是否亮(在电脑后面有唯一的能亮的)&&echo.&&echo    如果这些都没有问题,请按任意键继续检查&pause)
  12. echo.&&echo 目的2  检查网络是否正常
  13. echo.
  14. ping 202.96.134.134 >nul&&echo 连接电信服务器正常||(ping 192.168.1.1>nul&&echo 到路由器正常,仍无法连互联网,可能局域网出口有问题,也可能是你的电信联通公司有问题 || echo 到路由器都不通,还想上互联网,那是不可能的,请重头开始检测&echo.&pause)
  15. echo.&&ping www.baidu.com >nul&&echo 您的电脑可以正常连接网络(如不能打开网页,就是你电脑系统的问题)||(echo 无法访问百度,请联系管理员(管理员太辛苦了,请备好礼品)&echo.&pause)
  16. 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

按自己要求修改吧
  1. @echo off
  2. ::网络检查  wangwei qq 251485609
  3. if exist bfwjcf\tqxx.txt goto jcwl
  4. if not exist bfwjcf md bfwjcf
  5. ipconfig /all >bfwjcf\tqxx.txt
  6. :jcwl
  7. find "Description" bfwjcf\tqxx.txt >xm.txt
  8. for /f "tokens=2 delims=:" %%J in (xm.txt) do @echo %%J>wk.txt
  9. ::计算机网卡
  10. for /f "tokens=2 delims= " %%J in (wk.txt) do set cxm=%%J
  11. ::IP 地址
  12. find "IP Address" bfwjcf\tqxx.txt >xm.txt
  13. for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm2=%%J
  14. ::子网掩码
  15. find "Subnet Mask" bfwjcf\tqxx.txt >xm.txt
  16. for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm3=%%J
  17. ::默认网关
  18. find "Default Gateway" bfwjcf\tqxx.txt >xm.txt
  19. for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm4=%%J
  20. ::DNS 首选服务器
  21. find "DNS Servers" bfwjcf\tqxx.txt >xm.txt
  22. for /f "tokens=2 delims=:" %%J in (xm.txt) do set cxm5=%%J
  23. ::DNS 备用服务器
  24. for /f "tokens=1* delims=:" %%i in ('findstr /n . bfwjcf\tqxx.txt') do if %%i equ 20 @echo %%j>Phy.txt
  25. for /f " tokens=1" %%M in (Phy.txt) do set cxm6=%%M
  26. del xm.txt
  27. del wk.txt
  28. del Phy.txt
  29. cls
  30. :: 检查外网连接
  31. (ping /n 1 [url]www.163.com[/url])|findstr /i /r "TTL"
  32. if %errorlevel%==0  echo 远程 IP 外网([url]www.163.com[/url])连接正常。&&pause&&goto eof
  33. cls
  34. @echo.
  35. @echo  测试: 远程无信息返回,外网有故障或未能连接
  36. @echo.
  37. :: 检查本机DNS服务器设置
  38. (ping /n 1 %cxm5%)|findstr /i /r "TTL"
  39. if %errorlevel%==0   echo  本机DNS服务器设置%cxm5%正常 &&pause&&goto eof
  40. cls
  41. @echo.
  42. @echo  测试: 远程无信息返回,检查本机DNS设置(%cxm5%)或外网(路由进线)故障
  43. @echo.
  44. :: 检查本机 IP 地址
  45. (ping /n 1 %cxm2%)|findstr /i /r "TTL"
  46. if %errorlevel%==0 @echo  测试: 本机IP地址(%cxm2%)及路由正常&&pause&&goto eof
  47. cls
  48. @echo.
  49. @echo  测试: 本机IP地址(%cxm2%)无信息返回。请检查 IP 设置、网卡及电缆接口。
  50. @echo.
  51. :: 检查网关路由器
  52. (ping /n 1 %cxm4%)|findstr /i /r "TTL"
  53. if %errorlevel%==0 @echo  测试: 路由器默认网关(%cxm4%)正常&&pause&&goto eof
  54. cls
  55. @echo.
  56. @echo  测试: 路由器网关(%cxm4%)无信息返回。请检查网关设置、网卡及电缆接口。
  57. @echo.
  58. :: 检查本机 TCP/IP 协议
  59. (ping -n 1 127.1)|findstr /i /r "TTL"
  60. if %errorlevel%==0 @echo 测试: 本机TCP/IP协议(127.0.0.1)正常; 检查结束。&&pause&&goto eof
  61. cls
  62. @echo  测试: 本机TCP/IP协议(127.0.0.1)无信息返回
  63. @echo  检查结束。
  64. pause>nul
复制代码

作者: hsaytech    时间: 2009-10-6 09:53     标题: 很不错,待我测试下!

谢谢这位朋友,我测试下!
希望可以完全解决问题!
追求完美的东西才是令世人惊叹的!谢谢!




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