开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Ping高级用法:懒网管们的福音

简介:
+关注继续查看
ping命令结合dos批处理能做很多事,对我等懒惰的系统管理员们尤其有用。 

一.基础级:局域网ping命令用法 

1.改变ping的基本设置 
ping命令缺省要重复4次,等待时间也比较长,这用于广域网比较合适, 
在局域网判断一个ip是否存在,一般只要ping 1次足够,而且timeout时间 
完全可以在100ms以内。 

我在自己的PC上建立一个批处理pin.bat代替缺省的ping设置: 

@rem pin.bat Createdby Bankin 
@ping -n 1 -l 16 -w 100 %1 %2 %3 %4 %5 

这命令比缺省的ping快很多,后面加%1等是为了接受命令行参数,这是为了 
下面的扩展用法准备的。 

2.单个网段内的懒人ping 
如果你象我一样懒,可以把自己局域网的网络号也写死在批处理文件p.bat里: 

@rem p.bat Createdby Bankin 
call pin 192.168.1.%1 %2 %3 %4 %5 

比如你的mail服务器是192.168.1.2,那么只要输 p 2 即可。 
如果你有多个网段,可以在dos环境变量里设一下子网号。 

3.游戏玩家的终极懒人ping 

如果你的internet 网络连接需要经常检查,可以做一个批处理文件,再把它的 
快捷方式放在桌面上,定义一个快捷键。这样你在做任何工作时,随时可以看 
一下网络是否通,只要敲一个组合键,而不是要打开dos窗口,输好几条命令, 
再关掉此窗口。(当你打网络游戏中突然网络断掉,这时候你需要最快速度确定 
网关是否能ping到) 

这里要用一个技巧,就是dos命令返回值 %ERRORLEVEL%,当dos命令执行成功时,一般来说环境变量%ERRORLEVEL%会赋值0,失败则为1,我们利用这个方法,让脚本自己逐级查找网络连接问题。 

@rem pinggw.bat Createdby Bankin 
@echo off 

ping -n 1 192.168.1.1 |find "Reply" 
rem 如果这一步成功说明到本地网关的连接没有问题。 
if %ERRORLEVEL%==1 goto end 

ping -n 1 202.96.199.133 |find "Reply" 
rem 这是上海电信局的DNS,如果这一步成功说明到本地ISP的连接没有问题。 
if %ERRORLEVEL%==1 goto end 

ping -n 1 [url]www.163.com[/url] |find "Reply" 
rem 如果这一步成功说明本地ISP和internet连接没有问题,而且DNS没有问题。 

:end 
rem pause 
sleep 2 
exit 

sleep 2 停下2秒钟让你看清楚,然后自己exit退出,不要麻烦你关窗口。 
注意:sleep是windows2000 资源包的扩展命令,如果没有装就用pause代替吧。 

二. 网络管理员常用ping命令技巧 
1.入门级:网络连接监视日志 
我在一个项目里碰到交换机连接不稳定的情况,每天会随机中断几分钟, 
为了捕捉这个问题,做一个带时间显示的批处理文件pingtime.bat: 

@rem pingtime.bat Createdby Bankin 
@echo off 
echo "Begin ----------------------------" 
rem time <cr.txt |find "current" 
time /t 
pin %1 %2 %3 %4 %5 | find "Reply" 
rem sleep 10 

其中显示时间命令有两个版本,在windows2000上用time/t 命令即可, 
在win98上,要在当前目录下创建只有一个空回车的cr.txt文件。 

然后再做一个批处理文件来循环调用pingtime.bat并写入日志: 

@rem pinglog.bat Createdby Bankin 
@echo off 
:begin 
call pingtime 192.168.1.1>>pingtime.log 
goto begin 

2.中级:搜索当前网段内的所有活动ip 

缺乏良好管理的网络(我们大多数人的实际环境),网管经常搞不清 
有多少机器在运行,或者已经有多少个ip正在使用。 
如何在5分钟内拿到一个列表?只要一条dos命令即可: 

@rem pingall.bat Createdby Bankin 
@for /L %%A in (1,1,254) do pin 192.168.1.%%A |find "Reply">> pingall.log 

顺便说一句,windows2000的dos命令做了很多扩展,虽然比unix shell还差 
很多,可是已经能做一些复杂的脚本,而且在网络方面还有netsh命令集,值得好好研究。 

3.变态用法:搜索当前网段内所有的ip地址/mac对照表 

首先我们做一个批处理,ping 1个ip地址,如果有reply,就调用arp -a命令,查看当前arp缓存里的ip-mac列表,并且再用dos筛选命令find找出当前目标ip地址。 

@rem arplist.bat Createdby Bankin 
@echo off 
call pin %1 | find "Reply">nul 
if %ERRORLEVEL%==0 goto arplist 
goto end 
:arplist 
arp -a |find "%1" 
:end 

然后用类似上一节的方法做一个子网ip地址循环脚本来调用arplist.bat。 

@rem arpall.bat Createdby Bankin 

@for /L %%A in (1,1,254) do arplist 192.168.1.%%A >> arpall.log



本文转自 萧湘月 51CTO博客,原文链接:http://blog.51cto.com/sniffer/24771,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
暴力破解美团最新JVM面试题
哈喽,我是子牙。十余年技术生涯,一路披荆斩棘从技术小白到技术总监到JVM专家到创业。技术栈如汇编、C语言、C++、Windows内核、Linux内核。特别喜欢研究虚拟机底层实现,对JVM有深入研究。分享的文章偏硬核,很硬的那种。
51 0
文字处理技术:页面布局时,有两个方向
文字处理技术:页面布局时,有两个方向
48 0
搞清楚Spring Cloud架构原理的这4个点,轻松应对面试官
搞清楚Spring Cloud架构原理的这4个点,轻松应对面试官
1025 0
关于nmonanalyser报错“输入超出文件尾”的解决方法
关于nmonanalyser报错“输入超出文件尾”的解决方法   运行环境:nmonanalyserV4.7   原因分析:   这个是工具的VBA宏报错,原因是*.nmon文件中存在中文。
829 0
[再寄小读者之数学篇](2014-11-26 正定矩阵乘积的特征值)
设 $A,B$ 都是实正定矩阵, 则 $A^{-1}B$ 的特征值都是正实数.
560 0
伴随矩阵的特征值
设 $3\times 3$ 阵 ${\bf A}$ 的特征值为 $\lm_1,\lm_2,\lm_3$, 证明 $\cof {\bf A}$ 的特征值为 $$\bex \lm_2\lm_3,\quad \lm_3\lm_1,\quad \lm_1\lm_2.
1423 0
13688
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载