Потери пакетов всегда критичны для нормальной работы. Посему хорошо использовать такой скрипт, который позволяет сохранить в
лог-файл результат работы команды ping. Особенность - в лог-файле напротив результата прохождения каждого пакета имеется
временная метка.
Запускать так: cscript //nologo
pingtime.vbs>pingtime.log.
Результат работы искать в файле pingtime.log.
Скрипт может быть полезен для диагностики и анализа проблем в сети.
17:56:48
10.163.11.1: число байт=32 время=1мс TTL=255
17:56:49
10.163.11.1: число байт=32 время=1мс TTL=255
17:56:50
10.163.11.1: число байт=32 время=1мс TTL=255
...
Создаем файл pingtime.vbs со следующим содержимым:
option explicit
' conHost -- адрес хоста для слежения
' conCheckInterval -- временной интервал
const conHost = "
10.163.11.1", conCheckInterval = 1000
' создаём объект:
dim soWshShell : set soWshShell = CreateObject("WScript.Shell")
WScript.Quit Main()
dim soWshShell : set soWshShell = CreateObject("WScript.Shell")
WScript.Quit Main()
function
WriteLog(strText)
WScript.Stdout.WriteLine FormatDateTime(Time(), vbLongTime) & " " & strText
end function
WScript.Stdout.WriteLine FormatDateTime(Time(), vbLongTime) & " " & strText
end function
function
GetHostStatus(strHost)
dim oPing : set oPing = soWshShell.Exec("ping -n 1 " & strHost)
dim strOut : strOut = ""
do
WScript.Sleep 100
if not oPing.Stdout.AtEndOfStream then
strOut = strOut & oPing.Stdout.ReadAll
end if
loop until oPing.Status = 1
dim oPing : set oPing = soWshShell.Exec("ping -n 1 " & strHost)
dim strOut : strOut = ""
do
WScript.Sleep 100
if not oPing.Stdout.AtEndOfStream then
strOut = strOut & oPing.Stdout.ReadAll
end if
loop until oPing.Status = 1
dim
oRegExp : set oRegExp = new RegExp
oRegExp.IgnoreCase = true
oRegExp.Pattern = "[^ ]+:.+TTL=[^\r\n]+"
dim oMatches : set oMatches = oRegExp.Execute(strOut)
if oMatches.Count > 0 then
GetHostStatus = oMatches(0).Value
else
GetHostStatus = "Inaccessible!.."
end if
end function
oRegExp.IgnoreCase = true
oRegExp.Pattern = "[^ ]+:.+TTL=[^\r\n]+"
dim oMatches : set oMatches = oRegExp.Execute(strOut)
if oMatches.Count > 0 then
GetHostStatus = oMatches(0).Value
else
GetHostStatus = "Inaccessible!.."
end if
end function
function Main()
do
WriteLog(GetHostStatus(conHost))
WScript.Sleep(conCheckInterval)
loop
end function
Результат работы искать в файле pingtime.log.
Комментариев нет :
Отправить комментарий