Ping для трея

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Ping для трея

Сообщение Proxy » 27.07.2011 (Ср) 17:35

Мониторит связь с указанным удалённым хостом (например сервер с вашей работы), ежесекундно отправляет ping запрос (32B), отображает Round Trip Time в виде 5 делений в трее (аналогично системному значку для беспроводных подключений). Предельно простой инструмент.
Параметры запуска (разделяются пробелом):
имя хоста (IP либо имя узла, с IP несколько быстрее запускается. Если пропущено, то принимается значение по умолчанию 192.168.0.1)
/hide — скрыть окно (вообще GUI не планировался, так что без /hide запускать не имеет особого смысла, закрывается по правому клику по значку в трее)
/transp — просто сделать окно с графиком прозрачным (50%)
/ontop — поверх всех окон
5 делений — RTT менее 50мс (в среднем для 5 последних запросов)
4 деления — 50-100мс
3 деления — 100-150мс
2 деления — 150-200мс
1 деления — свыше 200мс
0 делений — превышен интервал ожидания (в т.ч. однократно)
PS. Процесс завершается несколько позже скрытия окна после клика по кнопке выхода, это нормально.
PPS. Делал для собственных нужд, аналог найти не удалось (а может просто google ко мне не милостив сегодня).
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Anonymous 28.07.2011 (Чт) 12:35, всего редактировалось 2 раз(а).
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ping для трея

Сообщение Хакер » 27.07.2011 (Ср) 17:51

Что значит «лаг» менее 50мс?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 27.07.2011 (Ср) 17:53

* Round Trip Time
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ping для трея

Сообщение Хакер » 27.07.2011 (Ср) 18:46

Теперь, ты в курсе, что число зависит от разамера пакета?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 27.07.2011 (Ср) 18:56

Хакер писал(а):Теперь, ты в курсе, что число зависит от разамера пакета?

В смысле сделать размер пакета опциональным как в стандартном ping?
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ping для трея

Сообщение Хакер » 27.07.2011 (Ср) 19:27

В смысле значение RTT мало чего значит без размера пакета.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 27.07.2011 (Ср) 19:56

Хакер писал(а):В смысле значение RTT мало чего значит без размера пакета.

А вот изменение значения очень даже значит. Вообще я делал это для очень грубой оценки, эта информация всё равно мало чего полезного даёт (разве что полную пропажу ответов хорошо видно, для чего и создавал + снижение/повышение среднего значения, конкретные числа по моей задумке пользователь вообще видеть не должен был, только шкалу), из-за сильно загруженного канала пакеты долго не могут преодолеть "узкую часть", так что в отличие от tracert тут можно судить только об общем состоянии канала. Ну вообще по умолчанию в ping 32 байта размер пакета, у меня теперь так же + в ping обычно ещё использовал таймаут меньше стандартного, тут всё что больше 300мс считается превышением (но не равным полному отсутствию ответа).
Сама шкала тоже не идеальное решение, т.к. значения по шкале имеют строгий минимум и строгий максимум, в отличие от времени ответа. Ответ может быть не менее 0мс, но максимум задаётся исключительно таймаутом (технически ограничено). Там вообще следовало бы использовать экспоненту для представления в виде 5 столбиков на шкале.
Follow the white rabbit.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Ping для трея

Сообщение Antonariy » 28.07.2011 (Чт) 10:19

Контролирует
Враньё. Просто проверяет наличие.
Параметры запуска
Гореть им в аду. Или быть лишь дополнительной опцией. Сегодня любая программа с графическим интерфейсом должна иметь графический же интефейс настройки, освобождающий от необходимости допиливания ярлыков.
Делал для собственных нужд
Раздел "для чего это нужно" у приличных и даже большинства отстойных программ содержит целое эссе на страницу-полторы.

Так для чего это нужно? А фиг его знает. Если что-то случится с моим сервером или каналом до него (а лично у меня серверов вообще много), я об этом узнаю без всяких пингов, которые вообще могут быть запрещены.

Зато есть полупрозрачность, куда ж без нее.
Лучший способ понять что-то самому — объяснить это другому.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 28.07.2011 (Чт) 11:24

Antonariy писал(а):Гореть им в аду. Или быть лишь дополнительной опцией. Сегодня любая программа с графическим интерфейсом должна иметь графический же интефейс настройки, освобождающий от необходимости допиливания ярлыков.

Меню же есть. Вообще для использования с автозапуском проще воспользоваться параметрами командной строки, чем создавать множество профилей. Ну или как ещё проще запустить тот же почтовый клиент скрыто (чтобы проверять почту автоматически каждые 5-10 мин по pop3. нет службы, есть только полноценное приложение с GUI, которое можно только свернуть), чтобы при запуске ос не приходилось каждый раз сворачивать окно. Если даже и есть в настройках чекбокс "запускать свёрнутым в трей", то наверняка никто не учитывает, что пользователь может пожелать один профиль почтового клиента запустить свёрнутым, другой с открытым окном написания нового e-mail, третий ещё как-то. В профилях в том же Thunderbird нельзя для отдельных учётных записей (впрочем и необходимые параметры запуска не предусмотрены, как и повторный запуск) использовать отдельные адресные книги, отдельные плагины (возможно конфликтующие) и т.п.
Antonariy писал(а):Враньё. Просто проверяет наличие.

А как оно должно быть? Оповещение разве что прикрутить или запуск какого-то приложения по потере хоста (которое сделает что? Реконнект? Удалённо отправит в ребут? Не знаю даже)?
Antonariy писал(а):Так для чего это нужно? А фиг его знает.

Допустим я так проверяю доступ до одного из роутеров: если пропадает доступ в интернет (или скорость сильно падает), то по этому значку я могу судить пропала ли связь между роутерами или же провайдер затупил (само-собой роутеру для этого разрешено отвечать на ping). До этого в автозупуске было "ping 192.168.0.1 -n 9600 -w 200", но постоянно открытое окно cmd как-то угнетает, не удобно смотреть. Может спидтест полноценный сюда добавить? Стандартный значок показывает уровень сигнала от роутера (репитера), к которому пк подключен, рядом такой же значок, позволяющий узнать есть ли связь между репитером (GWI) и GWE
Follow the white rabbit.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Ping для трея

Сообщение Antonariy » 28.07.2011 (Чт) 12:01

Меню же есть.
В меню нет настройки адреса. И уважения к заглавным буквам. Это типа социальный протест против капса?
А как оно должно быть?
Должно быть не "контролирует", а "мониторит" в описании. Иначе это попадает под статью о недобросовестной рекламе или вроде того. Не важно, что денег за прогу не берешь, важно, что появляется привычка описывать продукт небрежно, что теоретически когда-нибудь может привести к неприятностям.
если пропадает доступ в интернет (или скорость сильно падает),
То об этом можно догадаться без всяких мониторов. Сидеть и мониторить монитор глазами это глупая трата драгоценного времени. О наличии проблем проще догадаться по самому наличию этих проблем, нет? А уж о причине проблем можно судить с помощью ЗАПУСКА каких-то утилит, которое все остальное время не висят на экране/трее и не мозолят глаза 99,9%времени совершенно впустую. Впрочем, догадываюсь, что ты писал ее специально под свою экзотическую топологию, которую обсуждал в трепе, и проблемы в ней совсем не экзотика.

Вместо свистоперделочного окна, чуть более, чем наполовину состоящего из заголовка, стоит отображать уровень самой конкой в трее, как это делает WinRar, например. А задержку — тултипом при наведении курсора. Вот тогда это будет действительно "пинг для трея".
Лучший способ понять что-то самому — объяснить это другому.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 28.07.2011 (Чт) 12:36

Antonariy писал(а):Вместо свистоперделочного окна, чуть более, чем наполовину состоящего из заголовка, стоит отображать уровень самой конкой в трее, как это делает WinRar, например. А задержку — тултипом при наведении курсора. Вот тогда это будет действительно "пинг для трея".

Так и задумывалось. Сделаю так, значит.
Antonariy писал(а):Должно быть не "контролирует", а "мониторит" в описании.

Исправил
Antonariy писал(а):В меню нет настройки адреса. И уважения к заглавным буквам.

Скоро выложу актуальную версию, там исправил.

Antonariy писал(а):и проблемы в ней совсем не экзотика.

Корень всех проблем исключительно в том, что я не купил антенну нормальную, которую можно вынести в зону прямой видимости второй точки (расстояние менее 65 метров). В остальном всё в порядке.

Апд: вот. Скрыл окно по умолчанию (но можно увидеть график (только график) по двойному клику), можно на лету менять узел назначения, вся статистика вынесена во всплывающую подсказку.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 29.07.2011 (Пт) 14:57

Чуть-чуть добавил:
Теперь при разрыве запускает "disconnect.bat" при наличии, при появлении ответов "connect.bat" (не единожды за сессию). В connect.bat можно, к примеру, апдейтер антивируса поместить при GPRS соединении. Хотя можно было и без этого обойтись одним пакетным файлом, но думаю так капельку удобнее, всего 1 строка в bat файле.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

NashRus
Постоялец
Постоялец
 
Сообщения: 386
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Ping для трея

Сообщение NashRus » 30.07.2011 (Сб) 19:49

Нда, еще кто-то запускает непонятно чьи экзешники без исходников.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 31.07.2011 (Вс) 13:33

Ага, а кто-то пользуется ЦП без полного описания архитектуры в документации. И ОС с закрытым исходным кодом...
И вообще нас прослушивают агенты всемирного заговора, так что всё что я говорю — неправда.
Follow the white rabbit.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Ping для трея

Сообщение Antonariy » 02.08.2011 (Вт) 11:50

Proxy
Стало гораздо лучше :)

NashRus
Этот "непонятно кто" заслужил репутацию, позволяющую не опасаться подстав. Совсем другое дело, если что-то выложит непонятно кто с полтора постами.
Лучший способ понять что-то самому — объяснить это другому.

NashRus
Постоялец
Постоялец
 
Сообщения: 386
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Ping для трея

Сообщение NashRus » 02.08.2011 (Вт) 12:37

Да я уж понял, что "непонятно кто" в авторитете оказался, не то что я.
Зря я кипишь поднял.
Просто хотел объяснить это безумное количество скачиваний и предложить при необходимости воспользоваться CDN.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Ping для трея

Сообщение FireFenix » 02.08.2011 (Вт) 13:11

ммм, а это нормально?
У вас нет доступа для просмотра вложений в этом сообщении.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 02.08.2011 (Вт) 16:59

FireFenix писал(а):ммм, а это нормально?

Может просто совпадение?
У меня однозначно коррелирует.
Изображение

Хотя у меня закралось подозрение, что пакет от узла 195.88.112.16 считается ожидаемым ответом от 192.168.0.1 (похоже я нигде это не учёл), исправлю, если так.

UPD:
Вроде исправил. Заодно новый параметр /solid теперь появился, теперь в полупрозрачном графике можно что-то разглядеть.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 17.08.2011 (Ср) 18:32

Исправил изменение показаний на шкале, теперь снова 0 "палочек" есть (как и в раннем описании 0 единиц - полное отсутствие ответов от указанного хоста, в этом же случае при наличии батника запускается онный).
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 19.08.2011 (Пт) 12:22

Сделал добавление нового хоста для повторного запуска с теми же параметрами (но окна не перекрывают друг-друга), но другим хостом. Завершаются естественно так же по отдельности, завершение одного процесса никак не скажется на другом.
+ вспомнил и добавил проверку валидности имени хоста. Если указан некорректный хост (недоступный в данный момент, если указан не IPv4), то процесс завершается.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Re: Ping для трея

Сообщение netdemon » 29.08.2011 (Пн) 20:24

Ничего не понимаю. При попытке изменить хост вываливается ошибка. "НЕ МОГУ НАЙТИ ХОСТ" и обваливается.
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 29.08.2011 (Пн) 21:55

netdemon писал(а):Ничего не понимаю. При попытке изменить хост вываливается ошибка. "НЕ МОГУ НАЙТИ ХОСТ" и обваливается.

Какая версия? Такое у меня было только в ранних версиях, там по недосмотру можно было только ip вводить в хост, после исправил вроде. Проверил на "2ip.ru" — работает.

ЗЫ. Оказывается баг с полной шкалой при отсутствии связи с хостом так и не был устранён до конца. Ответы от шлюза о недоступности иногда (пока не знаю в каких случаях) воспринимаются как ожидаемый ответ, будет время и желание — исправлю. Если кто столкнётся, то сделайте вот что, пожалуйста: цитируйте сюда то, что отображается обычным ping`ом в этой ситуации. Пока не сообразил почему некоторые ответы от посторонних хостов игнорируются, а некоторые — нет.
Follow the white rabbit.

flisk
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 17.10.2011 (Пн) 3:46

Re: Ping для трея

Сообщение flisk » 17.10.2011 (Пн) 4:03

мне очень пригодилось, большое спасибо!! P.S.: играю в онлайн игры, удобно следить за связью

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 19.11.2011 (Сб) 18:28

Постарался сделать немного удобнее, теперь есть некое подобие журнала, в котором фиксируется время множественной потери ответов от узла назначения (только серии, однократные потери не учитываются; таким образом пытаюсь выявить закономерность вечерних сбоев в своей сети, т.к. заподозрил, что они происходят в одно и тоже время ежедневно), добавил список статусов 16 последних запросов (узел недоступен, общая ошибка и т.п). Кое-где местами привёл код в приличный вид, кое-где устранил возможные ошибки.
Ошибочное присвоение статуса "success" во время недоступности сети назначения (иногда, не ясно при каких условиях; ответ от чего-то совпадает с ожидаемым) по прежнему имеет место быть, не было возможности изучить, т.к. когда появилось свободное время, воссоздать условия и изучить не удалось.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 27.11.2011 (Вс) 19:54

Функция IcmpSendEcho (из icmp.dll) в ReplyBuffer (ReplyBuffer.Status; вторая long переменная в типе ICMP_ECHO_REPLY из примера microsoft) возвращает 0, что трактуется как ICMP_SUCCESS (сам понимаю, что изложил криво :D ReplyBuffer — параметр типа ICMP_ECHO_REPLY, содержащий в т.ч. статус запроса). Вообще единственный случай, когда возвращается неверный статус — это отсутствие сети назначения (хотя это должно возвращать 11002 или 11003). Притом только если на момент запуска ОС (инициализации сетевых интерфейсов и поиск маршрутов?) сеть была не доступна, в иных случаях всё работает корректно (допустим когда полностью вырубился маршрутизатор). Пожалуй я не в силах что-либо исправить. Самым лучшим выходом была бы самостоятельная реализация ICMP без использования icmp.dll, но желание что-либо делать с этим проектом уже пропало куда-то. Сначала полагал, что выбирается неверный интерфейс (что какой-то из виртуальных шлёт эхо-ответы зазря), однако эту гипотезу постигло фиаско.
Follow the white rabbit.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 09.12.2011 (Пт) 14:51

Журнал не отделял старые записи, как было задумано (лимит 1 кб, после чего старый журнал переименовывается, новый начинается). Как следствие через неопределённое время могло возникнуть переполнение. Исправил. На том проект закрывается, более ничего тут не будет. Главная ошибка не устранена, поставленную задачу проект успешно выполнил, необходимости в нём более не имеется.
У вас нет доступа для просмотра вложений в этом сообщении.
Follow the white rabbit.

sr666hoy
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 26.01.2012 (Чт) 19:37

Re: Ping для трея

Сообщение sr666hoy » 26.01.2012 (Чт) 20:33

5 делений — RTT менее 50мс (в среднем для 5 последних запросов)
4 деления — 50-100мс
3 деления — 100-150мс
2 деления — 150-200мс
1 деления — свыше 200мс
0 делений — превышен интервал ожидания (в т.ч. однократно)

а это нельзя изменить?

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: Ping для трея

Сообщение djalex777 » 26.01.2012 (Чт) 20:40

Proxy, а возможно ли изменить время между отправкой запросов? А то 1 секунда в некоторых местах трактуется как начало атаки.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Ping для трея

Сообщение Proxy » 27.01.2012 (Пт) 6:28

Этот проект нет особого смысла далее развивать. Большую часть работы выполняет icmp.dll, а она в некоторых случаях работает не так, как запланировано.
Follow the white rabbit.


Вернуться в Наши проекты

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

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

    TopList  
cron