我怎样才能每 500 毫秒执行一次 ping 操作?

我怎样才能每 500 毫秒执行一次 ping 操作?

默认情况下,两次 ping 之间的时间延迟等于 1 秒。我需要将两次 ping 之间的延迟减少到 500 毫秒(0.5 秒)。有什么办法可以做到这一点吗?

答案1

您可以系统.Net.网络信息.Ping类并将其包装在 PowerShell 函数中。我把它弄得非常简单,你可以修改它来获得你想要的输出。

该函数如下:

  • Computername 接受内部 + 外部 IP 地址、ComputerNames、URL 等。
  • 计数 = 要发送多少个 ping 数据包
  • 超时指定等待 ICMP 回显答复消息的最大毫秒数(发送回显消息后)。
  • 间隔 = 下次 ping 之前等待多少毫秒。

Function New-IntervalPing {

    [Alias("iping")]
    Param(
        [string]$ComputerName,
        [int]$Count = 4,
        [int]$TimeOut = 100,
        [int]$Interval = 500
    )

    1..$Count | ForEach-Object {
        $Ping = [System.Net.NetworkInformation.Ping]::New()
        $Ping.Send($ComputerName,$TimeOut)
        start-sleep -Milliseconds $Interval
    }
}

用法:

PS C:\Users\SimonS> iping google.com -count 2 -interval 300


Status        : Success
Address       : 172.217.168.14
RoundtripTime : 6
Options       : System.Net.NetworkInformation.PingOptions
Buffer        : {97, 98, 99, 100...}

Status        : Success
Address       : 172.217.168.14
RoundtripTime : 4
Options       : System.Net.NetworkInformation.PingOptions
Buffer        : {97, 98, 99, 100...}

答案2

在 Linux 上这是可能的(最近最短时间已更改为 200ms = 0.2):

ping -i 0.2 server.com

Root 可以发出更短的时间:

ping -i 0.01 server.com

答案3

你可以这样做网平(来自nmap

  1. 第一的下载并安装nmap套餐包含网平
  2. 在命令提示符中将目录更改为C:\Program Files (x86)\Nmap
  3. 现在运行以下命令:(nping --delay 500ms --count 0 <target ip address>
    --count 0选项将其设置为连续 ping)

....从Nping 参考指南

Usage: nping [Probe mode] [Options] {target specification}
....
....
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m, 0.25h).
  --delay <time>                   : Adjust delay between probes.
  --rate  <rate>                   : Send num packets per second.

答案4

您无法在 Windows 命令行中更改每次 ping 请求之间的时间。您需要使用第三方工具,例如 fping 或 TruePing

另请参阅https://serverfault.com/questions/200468/how-can-i-set-a-short-timeout-with-the-ping-command

相关内容