首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows cmd/Powershell,甚至在超时期间每秒钟都会进行ping。

问Windows cmd/Powershell,甚至在超时期间每秒钟都会进行ping。
EN

Stack Overflow用户
提问于 2021-04-14 11:37:34
回答 2查看 4.5K关注 0票数 0

我有以下PS代码,用于每秒钟记录ping:

代码语言:javascript
复制
ping -t google.com | Foreach{"{0} - {1}" -f (Get-Date),$_} >> filename.txt

它确实每秒钟记录一次,也就是说,如果ping是140 is,那么下一个ping请求是860 is,因为我似乎每秒钟都有数据而不跳过。但是,当发生超时时,每次跳过5秒:

代码语言:javascript
复制
12. 4. 2021 16:13:10 - Reply from 172.217.19.110: bytes=32 time=20ms TTL=111
12. 4. 2021 16:13:11 - Reply from 172.217.19.110: bytes=32 time=79ms TTL=111
12. 4. 2021 16:13:16 - Request timed out.
12. 4. 2021 16:13:17 - Reply from 172.217.19.110: bytes=32 time=26ms TTL=111
12. 4. 2021 16:13:18 - Reply from 172.217.19.110: bytes=32 time=67ms TTL=111

很难相信每次发生这种情况,连接就会丢失5秒,而不是恢复;似乎超时“阻塞”了新的ping命令。有办法绕过这件事吗?

EN

回答 2

Stack Overflow用户

发布于 2021-04-14 23:15:09

您正在看到默认的数据包请求超时。默认情况下,Windows系统在ping请求超时之前等待4,000毫秒。添加一些延迟到你的脚本,你就有了它。

可以使用参数/w修改超时。

例如。这将强制超时为1秒。我想您会看到,在响应交付之前,超时间隔之后还有1秒的延迟。

ping www.google.com /w 1000

您想知道的关于windows上ping的所有信息都可以通过搜索Microsoft命令在微软的站点上找到。这将是learn.microsoft.com在列表顶部或附近的结果。

票数 1
EN

Stack Overflow用户

发布于 2021-04-16 18:46:08

Powershell 7有一个-timeoutseconds参数。

代码语言:javascript
复制
 test-connection -TimeoutSeconds 1 microsoft.com -count 1

   Destination: microsoft.com

Ping Source           Address                   Latency BufferSize Status
                                                   (ms)        (B)
---- ------           -------                   ------- ---------- ------
   1 DELL             *                               *          * TimedOut

或者您可以在.net中进行自己的ping,并设置100毫秒的超时。

代码语言:javascript
复制
Function Get-Ping  {

  Param (
    [parameter(ValueFromPipeline)]
    [string[]]$Hostname='yahoo.com'
  )

  Begin {
    $Ping = New-Object System.Net.Networkinformation.ping
    $Timeout = 100 # ms
  }

  Process {
      $Ping.Send($hostname, $timeout)  | Add-Member -passthru hostname $hostname[0] | 
      select hostname,address,status,roundtriptime
  }

}


get-ping microsoft.com

hostname      Address   Status RoundtripTime
--------      -------   ------ -------------
microsoft.com         TimedOut             0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67090996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档