中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 02:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于PING本机IP的问题! 查看 2,525 回复 3
楼 主 关于PING本机IP的问题! 发表于 2006-09-13 09:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
  在和别人讨论怎么在批处理中延时10分钟的问题时,网友说用“ping 127.1. -n 600 >nul 2 > nul”,但是在我的机子上面试验的时候,过几秒钟CMD窗口就自动关闭了,但是我用“ping 127.0.0.1 -n 600 > nul 2 > nul”却可以延时10分钟左右,不知道这是个什么原因哦``
2 发表于 2006-09-13 09:37 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  纠正一个说法,延迟10分钟是要ping 127.0.0.1 601才准确。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-09-13 09:39 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
为什么要多一秒呢?
4 发表于 2006-09-13 23:12 ·  中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re lxmxn:

127.1 是 127.0.0.1 在 ping 命令中的缩略写法,它们应该是等价的,你的不同的测试结果应该来源于其它测试环境或因素的不同,请重新测试一下, 并保证在相同的环境和相近的时间间隔内。

使用 ping /? 可以获知 -n 是指定“Number of echo requests to send.”,也就是指定发送 ECHO 数据包数。默认值为 4。

因为ping命令在发送每个包之后缺省延迟一秒,再发送下个包,所以每个包之间间隔一秒,按照植树原则,间隔秒数约等于发包次数减一。

另外,关于ping的技巧还有一些,比如它支持以0起首的八进制数和0x起首的十六进制数指定IP地址,其它的技巧可以参考。

Re namejm:

严格意义上来说,-n 601 也并不能保证10分钟的准确延时。

准确延时的前提是,保证ping所发出的每个包都能迅速被响应,发往本地网卡虽然是最佳的选择,但仍然不能排除因为网卡工作状态、网卡驱动程序、本地连接配置出错等问题所带来的延迟响应或没有响应。相关讨论参见。


关于"set & echo"变量替换的延迟
http://www.cn-dos.net/forum/viewthread.php?tid=18050

批处理编程的异类
http://www.cn-dos.net/forum/viewthread.php?tid=12388

ping命令的小秘密
http://wwww.okuc.net/bbs/TopicOther.asp?t=5&BoardID=1111&id=4966

Ping命令,大家都比较熟悉,它常被用来测试局域网的连通状态。“Ping+IP地址”是大家最常用的一种命令格式,但大家是否注意过Ping命令中的IP地址呢?这里面可是有很多学问和讲究的,下面笔者就为大家介绍一下隐藏在Ping命令中的这些秘密。

  “.0”可以有条件省略

  大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果,其实“ping 127.1”和“ping 127.0.0.1”这两条命令是一样的,都是在进行回路测试。

  为什么会这样呢?这就是Ping命令应用中IP地址的使用技巧。大家都知道,IP地址由32位二进制数字组成,为了方便大家记忆,将每8位二进制数字换算成十进制数字,因此就形成了容易记忆的由四糠质剖肿槌傻腎P地址(如127.0.0.1)。由于,Windows操作系统具有自动填充“.0”的功能,因此我就可将“127.0.0.1”变为“127.1”。

  但是,这个“.0”的省略是有条件限制的,并不能任意省略。在Ping命令的应用中,只能将在IP地址的最后一部分十进制数字前出现的一个或多个“.0”省略,如把“ping 127.0.0.1”命令改写成“ping 127.1”。

  如果这一个或多个 “.0”没有紧挨着最后一部分的十进制数字,而是在其他位置,则这个“.0”不能省略,如“ping 202.0.96.1”就不能写成“ping 202.96.1”。这是因为“ping 202.96.1”返回的结果是“202.96.0.1”的应答信息,而不是“202.0.96.1”的应答信息。

  数字串代替IP地址

  在Ping命令中,还可以使用数字串代替IP地址,你相信吗?运行“ping 3658906394”命令,你会看到“218.22.123.26”这个IP地址的返回信息。

  为什么会这样呢?其实,“3658906394”就是IP地址“218.22.123.26”的另一种表示形式。当然,也可按同样的方法Ping其他的IP地址。

  字符串是如何转换而来的呢?其实并不复杂,以“218.22.123.26”这个IP地址为例,IP地址转换成数字串方法如下:先将“218.22.123.26”转换为十六进制“DA.16.7B.1A”,然后去掉小数点后,变为“DA167B1A”,最后将这个十六进制数转换为十进制“3658906394”,那么“218.22.123.26”就变为“3658906394”了。其他IP地址转换为数字串也是使用同样的方法。

  提示:在某些局域网环境中,使用“Ping+数字串”命令可能会失败,出现提示信息“Unknown host数字串”,这是因为该数字串被解析成主机名了,而不是IP地址。

  因此,掌握了上述技巧后,网管在进行网络测试或维护时,可以熟练运用“省略”方式,减轻Ping命令的字符输入量,提高工作效率。同时,使用数字串代替IP地址也可迷惑好奇心强的普通用户,以免他们胡乱设置。


[ Last edited by willsort on 2006-9-13 at 23:17 ]
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: