Назад | Перейти на главную страницу

как нажать fping.exe (или другой пинг для окон), чтобы завершить работу при первом ответе?

Хотите проверить связь с конкретным хостом с произвольным количеством запросов ICMP, но также хотите, чтобы программа ping завершала работу при первом ответе (сценарий ускорения). Встроенный пинг Windows и некоторые другие, которые я тестировал, не имеют такой функции. Кто-нибудь знает программу пинга windows с этой способностью? Я знаю, что могу зациклить программу ping с параметром «-n 1», но это причина того, что программа ping запускается каждый раз при запуске цикла и в случае массового использования может вызвать нежелательную загрузку системы.

Проверить -n параметр

-n Счетчик: указывает количество отправленных сообщений эхо-запроса. По умолчанию - 4.

ping.exe -n 1 должен отправлять только одно сообщение Echo Request

Если вы хотите ускорить процесс, вы можете проверить и другие параметры, в частности timeout параметр.

Вы можете сделать что-то подобное в PowerShell, который как Test-Connection командлет в качестве оболочки для ping.

 param(
     [string]$Name = "8.8.8.8",
     [int]$count = 4
 )

 [bool]$Success = $false

 For ($i=0; $i -le $count; $i++) {

     $result = Test-Connection -ComputerName $Name -Count 1 -ErrorAction SilentlyContinue
     if ($result.StatusCode -eq 0)
     {
          $Success = $true
          $result 
          break;
     }
 }

 Write-Output "Successful connection: $Success"

Test-Connection всегда использует один ping, и я помещаю вокруг него цикл, как только ping успешен, мы выходим из цикла, в идеале после первого ping, в противном случае он пытается x раз, как указано в $ count .

PowerShell не запускает исполняемый файл ping.exe, он использует указанные ниже сетевые API, поэтому под нагрузкой он может работать немного лучше.