【发布时间】:2014-06-09 16:25:16
【问题描述】:
我正在编写一个 perl 脚本,它向某个 IP 地址发出 ping,ping 大小为 65000,计数为 1000。
现在,当远程 PC 启动时,一切正常。 ping 成功,发送 1000 pkts 后结束。
但是,如果失败,它总是返回"Destination host unreachable"。 Ping 在最终放弃 100% pkt 丢失字符串之前一直尝试发送 arp 请求/ping 请求的时间过长。
我的问题是,如果说最初的 100 次 ping 本身没有产生响应,我该如何让 ping 退出。我不想等待太久,以防初始 ping 本身失败。我想 ping 退出。我该怎么做?
我目前正在为我的脚本使用 Linux。请让我知道如何做到这一点
- Linux
- 窗户。
[请注意 ping pkt 的大小可能会有所不同。所以我想要一个独立于大小/数量的解决方案]
【问题讨论】:
-
好吧,标准
ping命令中有一个-W选项用于超时。我建议你看看命令手册页:man ping -
脚本在while循环1数据包ping中无限循环ping,即计数1,如果不为零,则检查ping的退出状态,增加一个计数器,在达到预定义的计数后退出。您可以在 while 循环中使用 -W 或 -w 进行 ping 操作
-
你想用 1000 个 65000 字节的数据包来证明什么(= 65 兆字节的无用带宽浪费)?我认为这里可能存在 XY 问题...
-
@Daylite 如果以下答案满足您的需求,请花点时间将其作为解决方案进行检查。目前,您的 34 个问题中有 32 个没有选定答案。