Понадобилось мне пинговать хост с отметками времени - то есть нужно было знать точное время когда начинаются timeout'ы и когда прекращаются.
Для этого на скорую руку был написан Powershell скрипт:
param($h='8.8.8.8') #Входящий параметр, указываем какой хост пинговать, например: ping.ps1 -h 192.168.1.1 $ping = new-object System.Net.NetworkInformation.Ping $date = Get-Date -format yyyy-MM-dd While (1 -ne 0) { #бесконечный цикл $reply = $ping.send($h) $timestamp = "{0:yyyy-MM-dd HH:mm:ss}" -f (get-date) #отметка времени if ($reply.status -eq "Success") { #Если хост пингуется $reply_time = $reply.RoundtripTime #время ответа "$timestamp $h $reply_time" } else { #если хост не пингуется "$timestamp $h timeout" } Start-Sleep -s 1 #секундная задержка }
Сохраняем, например, под именем ping.ps1 и запускаем вот так:
ping.ps1 -h google.com ping.ps1 -h 8.8.4.4
Пинг будет бесконечный. Результат выглядит вот так:
2015-01-06 14:32:32 8.8.4.4 71 2015-01-06 14:32:33 8.8.4.4 71 2015-01-06 14:32:35 8.8.4.4 71 2015-01-06 14:32:41 8.8.4.4 timeout 2015-01-06 14:32:42 8.8.4.4 73 2015-01-06 14:32:43 8.8.4.4 71 2015-01-06 14:32:44 8.8.4.4 72 2015-01-06 14:32:50 8.8.4.4 timeout 2015-01-06 14:32:51 8.8.4.4 71 2015-01-06 14:32:52 8.8.4.4 71 2015-01-06 14:32:53 8.8.4.4 72
Параметр -h указывает что нужно пинговать. Если запустить команду без параметра, то по умолчанию пингуется 8.8.8.8
Понравилось? =) Поделись с друзьями: