Author Topic: Текущий мониторинг состояния сети  (Read 7657 times)

0 Members and 1 Guest are viewing this topic.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Текущий мониторинг состояния сети
« on: February 12, 2014, 04:40:52 PM »
 Возник вопрос к корифеям.
 Написан скрипт.
 Вполне рабочий.
 НО!
 Если вдруг начинает барахлить сеть,   следует такой ряд ошибок , что крайне трудно предусмотреть все возможные варианты проверок и выхода из ситуации.
 Нельзя ли периодически сканировать ( пинговать некий образцовый сайт) , чтобы делать паузы в выполнении скрипта , на время некачественного сетевого пинга?
 п.с.
 Если такая проблема уже решена, поделитесь опытом.
Бабочки полёт будит тихую поляну в солнечном свету...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #1 on: February 12, 2014, 07:29:25 PM »
ну есть же http запросы. замеряешь традиционно время в начале и в конце. разница и есть пинг

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #2 on: February 12, 2014, 08:09:14 PM »
Если не затруднит, приведите небольшой пример самого простого скрипта ( желательно не схематичного, а рабочего) ,  допустим с запросом к сайту http://crapware.aidf.org/
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #3 on: February 12, 2014, 08:44:38 PM »
Не думаю что это пинг...

Code: (clickermann) [Select]
$ms = $_ms
$a = HTTPGET ("http://crapware.aidf.org/")
LOGWRITE ("Пинг: ", $_ms-$ms)
HALT

Лог:
Code: [Select]
21:31:45 Пинг: 229
21:31:46 Пинг: 177
21:31:50 Пинг: 165
21:32:32 Пинг: 177
21:32:33 Пинг: 172

Хотя на самом деле:

« Last Edit: February 12, 2014, 08:51:06 PM by Oraven »

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #4 on: February 12, 2014, 09:26:40 PM »
 Спасибо)
 Проверил. 
Разница ,  между пингом и  временем сканирования через Ваш  скрипт,  от 3 до 10 раз ( пинг короче).
Непонятно, какой делать вывод? 
Бабочки полёт будит тихую поляну в солнечном свету...

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #5 on: February 13, 2014, 12:23:37 AM »
Пока вышел из положения просто.
 Набрал статистику времени  среднего ответа сайта за 2 часа, при интервале запросов каждые  15 секунд.
 Буду считать эти цифры  отклика нормальными , базовыми.
Бабочки полёт будит тихую поляну в солнечном свету...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #6 on: February 13, 2014, 05:20:58 AM »
Не думаю что это пинг...
нет конечно. это еще обработка ответов, тормоза парсера, загруженность web-сервера и пр.
особенно последнее играет роль.
а пинг он просто уходит на удаленную машину и не так зависит от кол-ва пользователей на сайте

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #7 on: February 13, 2014, 03:26:00 PM »

нет конечно. это еще обработка ответов, тормоза парсера, загруженность web-сервера и пр.
особенно последнее играет роль.
а пинг он просто уходит на удаленную машину и не так зависит от кол-ва пользователей на сайте
Ну вот кстати, для решения   проблемы, такое полное время будет  более правильным в данном случае , чем чистый пинг.
Бабочки полёт будит тихую поляну в солнечном свету...

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #8 on: February 15, 2014, 11:43:58 PM »
Всем привет  :)
У меня вот такой вариант проверки пинга получился...
Я использовал bat-файл запущенный через утилиту NirCmd (для скрытия окна cmd). Утилиту NirCmd можно скачать тут -  http://www.nirsoft.net/utils/nircmd.html (лицензия freeware). Есть 32-bit и 64-bit версии. При запуске файла "nircmd.exe" утилита предлагает скопировать себя в папку Windows. Если нажать кнопку "Copy To Windows Directory", то она копируется и обращаться к ней после этого можно по имени файла nircmd.exe, не прописывая полный путь. Занимает сама утилита 116 КБ, есть английский хелп. NirCmd умеет запускать процессы без видимых окон, на такие программы обычно ругаются антивирусы.

Создаем bat-файл с именем "Test_Ping.bat" ...
Code: [Select]
ping crapware.aidf.org -n 1 | findstr "TTL" > ping.log

Пример cms-скрипта...
Code: [Select]

// Запускаем ярлыком bat-файл, посредством утилиты "NirCmd" (http://www.nirsoft.net/utils/nircmd.html)

EXECUTE("nircmd.exe", "execmd Test_Ping.bat.lnk")

// Ждем, пока создается файл "ping.log", и пока он не освободится для чтения (иначе будет ошибка)

WAITMS(1500) // Задержка подбирается индивидуально

$str = TFREAD("ping.log", 1) // Считываем из файла нужную нам строку

// файл "ping.log" будет создан утилитой "cmd.exe" в кодировке DOS.
// Строка получится вида:   ЋвўҐв ®в 81.177.6.193: зЁб«® Ў ©в=32 ўаҐ¬п=13¬б TTL=53
// Нужная нам цифра находится после 44-го символа и перед кракозяброй "¬б"

$ping = STRCUT2($str, 44, (STRPOS($str, "¬б") - 1)) // Вырезаем нужную нам цифру

LOGWRITE ($ping)


Далее, нужно создать ярлык на наш bat-файл (NirCmd будет запускать именно ярлык, а не сам батник). Имя ярлыка, в данном примере, такое же как и у bat-файла. Теперь у нас в папке проекта находятся: сам cms-скрипт, bat_файл и ярлык bat-файла.

Вместо записи результатов команды пинг в файл можем использовать запись в буфер обмена.

Тогда bat-файл будет таким.
Code: [Select]
ping crapware.aidf.org -n 1 | findstr "TTL" | clip

И немного изменим скрипт.
Code: [Select]

// Запускаем ярлыком bat-файл, посредством утилиты "NirCmd" (http://www.nirsoft.net/utils/nircmd.html)

EXECUTE("nircmd.exe", "execmd Test_Ping.bat.lnk")

WAITMS(1000)

$str = FROMCLIP()

$ping = STRCUT2($str, 44, (STRPOS($str, "мс") - 1))

LOGWRITE ($ping)


При работе скрипта окно Комндной строки не выскакивает. Курсор правда немного подмигивает.  ;)


Kibes

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Текущий мониторинг состояния сети
« Reply #9 on: August 28, 2019, 11:27:38 PM »
У меня часто пропадает интернет, и вот когда интернет появляется хочу что бы кликерман выполнял определенное действие, сейчас сделал так, что кликерман отслеживает картинку "мониторчика" в командной строке, но это зачастую это не совсем правильный вариант. Может у кого есть готовое решение? Например, определить постоянный хороший пинг без задержек и потерь пакетов???