PING с Записью в Файл и Отображением Времени

PING с записью в файл и отображением времени
PING с записью в файл

Всем здравствуйте. Столкнулся с ситуацией когда надо  весь PING залогировать с отображением времени.  Устанавливать различные программы на сервер не хочется. Сразу пришла в голову мысль о CMD только как это сделать??? Начал копать интернет, нашел очень много различных скриптов, но что-то работать ничего не хотело. Как я ни бился как не старался но время никак не хотело прописываться в логах PING. Долго я провел время на различных тематических форумах, и наконец заработало.

PING с записью в файл:

Вот собственно и сам скрипт. Его можно немного отредактировать и пометь для своих целей. Если вы не хотите экспериментов, то смело пролистывайте вниз там вы найдете готовый zip архив.

Скрипт:

option explicit 
' conHost -- адрес хоста для слежения 
' conCheckInterval -- временной интервал 
const conHost = "8.8.8.8", conCheckInterval = 999

' создаём объект: 
dim soWshShell : set soWshShell = CreateObject("WScript.Shell") 
WScript.Quit Main() 

function WriteLog(strText) 
  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 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 

function Main() 
  do 
    WriteLog(GetHostStatus(conHost)) 
    WScript.Sleep(conCheckInterval) 
  loop 
end function

Скачать готовый скрипт.

Далее все просто скопировали скрипт допустим в  корень диска C:
Открываем от имени Администратора командную строку и вводим cd C:/
PING с записью в файл и отображением времени
PING с записью в файл
Осталось ввести команду:  cscript //nologo pingtime.vbs>pingtime.log 
PING с записью в файл и отображением времени
Вводим команду для запуска скрипта
Сразу же рядом со скриптом появится файл pingtime.log, открыв его вы увидите ping и время пинга вот в таком формате.
PING с записью в файл
Открытый файл pingtime.log
Важно: В файле pingtime.log иногда не читабельный текст. Данная проблема возникает из-за кодировки. Чтоб избежать этого смените кодировку. Либо просто поменяйте текстовый редактор. Мне нравится Notepad++ он подсвечивает код и в нем очень много настроек.
Вот в принципе и все. Если кому то помог то значит статью писал не даром.

Скачать готовый скрипт.

Скачав архив вы найдете 3 файла.

  1. pingtime.vbs
  2. start.bat
  3. pingtime.log

Чтоб не заморачиваться рекомендую скачать и распаковать архив, запустить start.bat. И уже через пару секунд вы увидите pingtime.log начнет записывать пинги.

Комментарии 20

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *