Alexander A Manaeff -

 
 

Небольшой батник для проверки хоста ping-ом

Все об администрировании рабочих станций Windows 95/98/NT/2000/XP/7/8. То, чего не найдешь в бескрайних просторах Интернета. Решения тех проблем, которые не решаются типовыми ответами, которые можно получить в техподдержке Майкрософта - а именно: переустановить продукт или купить какой-ть другой лицензионный диск.

Модератор: UncleFather

Небольшой батник для проверки хоста ping-ом

Сообщение UncleFather » 12 мар 2013 12:19, Вт




Задача:

Необходимо проверять доступность заданного компьютера (узла сети, хоста) командой ping и, если компьютер недоступен, то заносить дату, время и результат пинга в файл.


Решение:


  1. Создаем командный файл следующего содержания:
     
    Код: Выделить всё
    REM ОТключаем вывод команд
    @Echo Off
    REM Начало бесконечного цикла
    :START
    REM Пингуем 1 (один) раз заданный компьютер по имени или адресу, прописанному вместо "HOSTNAME" и помещаем результат выполнения команды во временный файл TmpPng
    ping -n 1 HOSTNAME > TmpPng
    REM Проверка успешности выполнения команды "ping". Если команда выполнена с ошибкой, то переходим к выполнению процедуры внутри "IF"
    if %errorlevel%==1 (
       Rem Дописываем в файл отчета PingTest.txt дату и время текущей записи
       Echo Дата: %Date%, Время: %Time%, Result:>>PingTest.txt
       Rem Разбираем построчно временный файл TmpPng (с описанием текущей ошибки)
       for /F "tokens=*" %%i in (TmpPng) do (
          Rem Заносим каждую строку с описанием ошибки в файл отчета PingTest.txt под строкой с датой и временем
          Echo %%i>>PingTest.txt
                      )
       Rem Дописываем в файл отчета PingTest.txt строку из звездочек, для наглядности
       Echo *******************************************************>>PingTest.txt
             )
    Rem Делаем задержку, равную 10000 миллисекунд (10 секунд) перед выполнением новой проверки хоста. Задержка в 10 секунд обеспечивается единичной командой ping несуществующего хоста с указанным максимальным временем ожидания ответа (таймаутом)
    PING -n 1 -w 10000 192.168.253.253 > nul
    Rem Возвращаемся в начало бесконечного цикла
    GoTo START
    EXIT


    Здесь "HOSTNAME" - это имя или адрес компьютера, который нужно пинговать
    10000 - промежуток времени в миллисекундах, через который нужно проверять доступность тестируемого хоста

    Скачать этот файл:
    PingTest.rar
    (849 байт) Скачиваний: 2101


  2. Распаковываем скачанный архив, и в bat-файле вносим изменения:
    1. Вместо "HOSTNAME" пишем имя или адрес компьютера, который нужно пинговать
    2. Вместо 10000 указываем необходимое время задержки (в миллисекундах) между повторениями запросов к тестируемому компьютеру

  3. Запускаем исправленный bat-файл на эталонном компьютере (то есть на том, с которого будем проверять пинги)

  4. Файл PingTest.bat должен быть запущен постоянно на время тестирования. Если тестируемый компьютер перестанет быть доступным, то в папке, откуда запущен PingTest.bat, создастся текстовый файл PingTest.txt, в который будут записываться ошибки Если ошибок нет, то в PingTest.txt ничего записываться не будет.
     Пример файла PingTest.txt:
    Дата: 12.03.2013, Время: 12:55:58,97, Result:
    При проверке связи не удалось обнаружить узел PC01. Проверьте имя узла и

    повторите попытку.

    *******************************************************
    Дата: 12.03.2013, Время: 12:56:15,86, Result:
    При проверке связи не удалось обнаружить узел PC01. Проверьте имя узла и

    повторите попытку.

    *******************************************************
    Дата: 12.03.2013, Время: 12:56:32,86, Result:
    При проверке связи не удалось обнаружить узел PC01. Проверьте имя узла и

    повторите попытку.

    *******************************************************
    Дата: 12.03.2013, Время: 13:06:39,07, Result:
    Режим вывода команд на экран (ECHO) отключен.
    Обмен пакетами с 192.168.17.53 по с 32 байт данных:

    Режим вывода команд на экран (ECHO) отключен.
    Превышен интервал ожидания для запроса.

    Режим вывода команд на экран (ECHO) отключен.
    Статистика Ping для 192.168.17.53:

    Пакетов: отправлено = 1, получено = 0, потеряно = 1

    (100% потерь)

    *******************************************************
    Дата: 12.03.2013, Время: 13:06:54,07, Result:
    Режим вывода команд на экран (ECHO) отключен.
    Обмен пакетами с 192.168.17.53 по с 32 байт данных:

    Режим вывода команд на экран (ECHO) отключен.
    Превышен интервал ожидания для запроса.

    Режим вывода команд на экран (ECHO) отключен.
    Статистика Ping для 192.168.17.53:

    Пакетов: отправлено = 1, получено = 0, потеряно = 1

    (100% потерь)

    *******************************************************



Примечание:

В командном файле задержка в 10 секунд обеспечивается командой ping, в параметрах которой указано, что нужно запрашивать несуществующий хост (192.168.253.253), 1 (один) раз (-n 1), с таймаутом (максимальным временем ожидания ответа) 10000 миллисекунд = 10 секунд (-w 10000),
Код: Выделить всё
PING -n 1 -w 10000 192.168.253.253 > nul




Если Вам понравился этот материал, то мы с признательностью примем вашу финансовую поддержку, которая поможет нам и в дальнейшем радовать Вас интересной и полезной информацией.
Помните, что даже минимальная сумма сделает Вас инвестором этого проекта и о Вас будут думать с благодарностью тысячи наших новых читателей.
Материально поддержать проект можно здесь







Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram
Изображение
Изображение
Изображение
Изображение
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1380
Зарегистрирован: 17 авг 2004 16:20, Вт



Модификация для проверки двух хостов

Сообщение UncleFather » 19 май 2016 15:47, Чт

Модификация командного файла для проверки двух хостов

Эта модификация приведенного выше командного файла проверяет пинги до двух заданных хостов FirstHost и SecondHost и записывает удачные попытки в файл PingTestGood.txt, а неудачные - в PingTestBad.txt.

 Код:
Код: Выделить всё
@Echo Off

Set FirstHost=192.168.2.1
Set SecondHost=192.168.1.2
Set CheckHost=%FirstHost%

:START
ping -n 1 %FirstHost% > TmpPng
if %errorlevel%==1 (
   Echo „ в : %Date%, ‚६п: %Time%, Result:>>PingTestBad.txt
   for /F "tokens=*" %%i in (TmpPng) do (
      Echo %%i>>PingTestBad.txt
      )
   Echo *******************************************************>>PingTestBad.txt
   ) Else (
   Echo „ в : %Date%, ‚६п: %Time%, Result:>>PingTestGood.txt
   for /F "tokens=*" %%i in (TmpPng) do (
      Echo %%i>>PingTestGood.txt
      )
   Echo *******************************************************>>PingTestGood.txt
   )
if %FirstHost%==%CheckHost% (
   Set FirstHost=%SecondHost%
   ) Else (
        Set FirstHost=%CheckHost%
   PING -n 1 -w 10000 192.168.253.253 > nul
   )

GoTo START
EXIT


 Пример файла PingTestGood.txt:
Дата: 19.05.2016, Время: 15:42:56,30, Result:
Обмен пакетами с 192.168.1.2 по с 32 байтами данных:
Ответ от 192.168.1.2: число байт=32 время<1мс TTL=128
Статистика Ping для 192.168.1.2:
Пакетов: отправлено = 1, получено = 1, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
*******************************************************
Дата: 19.05.2016, Время: 15:43:10,30, Result:
Обмен пакетами с 192.168.1.2 по с 32 байтами данных:
Ответ от 192.168.1.2: число байт=32 время<1мс TTL=128
Статистика Ping для 192.168.1.2:
Пакетов: отправлено = 1, получено = 1, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
*******************************************************
Дата: 19.05.2016, Время: 15:43:24,28, Result:
Обмен пакетами с 192.168.1.2 по с 32 байтами данных:
Ответ от 192.168.1.2: число байт=32 время<1мс TTL=128
Статистика Ping для 192.168.1.2:
Пакетов: отправлено = 1, получено = 1, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
*******************************************************


 Пример файла PingTestBad.txt:
Дата: 19.05.2016, Время: 15:43:10,09, Result:
Обмен пакетами с 192.168.2.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Статистика Ping для 192.168.2.1:
Пакетов: отправлено = 1, получено = 0, потеряно = 1
(100% потерь)
*******************************************************
Дата: 19.05.2016, Время: 15:43:24,09, Result:
Обмен пакетами с 192.168.2.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Статистика Ping для 192.168.2.1:
Пакетов: отправлено = 1, получено = 0, потеряно = 1
(100% потерь)
*******************************************************
Дата: 19.05.2016, Время: 15:43:38,09, Result:
Обмен пакетами с 192.168.2.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Статистика Ping для 192.168.2.1:
Пакетов: отправлено = 1, получено = 0, потеряно = 1
(100% потерь)
*******************************************************


Командный файл можно скачать здесь:
PingTest.rar
(976 байт) Скачиваний: 415





Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram
Изображение
Изображение
Изображение
Изображение
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1380
Зарегистрирован: 17 авг 2004 16:20, Вт




Вернуться в Администрирование Windows Workstations

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Alexander A Manaeff - нижняя граница
Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования

Счетчик посещений