Простой монитор сети

ОБНОВЛЕНО (см. ниже)

Постоянно сталкиваюсь в разных областях деятельности с более-менее одной и той же проблемой: нужно какую-то тривиальную задачу решить быстро и просто, но погуглив и скачав несколько готовых решений я натыкаюсь на то, что инструментарий для этого в интернете хоть и есть, его много, но он настолько навороченный, что про «быстро и просто» можно сразу забыть. На одну только настройку такой программы уйдет больше времени, чем на решение моей задачи абсолютно вручную. Вот, например, мне для рабочей задачи понадобилось иметь на экране статус присутствия в сети сорока компьютеров (то есть айпи-адресов и ДНС-имён), мне для этого вполне достаточно их просто пинговать время от времени. Задача очень простая, но в интенете для её решения чуть ли не Zabbix предлагают подымать. А мне не надо мерить температуру процессора на каждой из этих машин, чтобы аж до Заббикса дело доводить, мне нужен банальный пакетный пинг, чтобы его результат в минимально возможном окне висел сбоку экрана и не мешал, причем мне нужно это всего на пару дней, а потом всё равно всё сносить. Довольно быстро я в очередной раз понял, что проще и быстрее написать себе инструмент самому, чем настраивать чей-то «швейцарский нож», который, конечно, в сто раз круче моего, но мне от него нужно ровно «одно лезвие».

Короче, если кому-нибудь нужна простая и понятная пинговалка сети с возможностью забить руками любые нужные адреса и сгруппировать, то на всякий случай делюсь своей. Там очень тривиальный конфиг и максимально не перегруженный интерфейс, может кому-нибудь пригодится.

На этом скриншоте она с конфигом, который я набросал от балды, в моем рабочем конфиге строк, конечно, в десять раз больше. Думаю, разберетесь. Ничего особо интересного там точно нет, но в этом и была цель.

P.S. если прога ругается, можно попробовать положить в её папку вот эту библиотеку или запустить от имени Администратора.

UPD: Добавил сворачивание в трей в версии 1.0.1, ссылку поменял, можно перескачать.

UPD2: В общем, когда количество хостов, за которыми мне по рабочей задаче требуется наблюдать, достигло сотни, я понял, что мне приходится запускать прогу, затем подставлять другой конфиг и запускать еще одну копию проги. В результате я кое-что переделал: убрал кнопку «выход» для экономии места, поместив эту функцию в появившееся теперь меню программы, и добавил возможность подгружать другой конфиг на лету, а за одно — подгружать конфиг при загрузке программы через командную строку. То есть можно создать несколько конфигов, в которых будут разные хосты, а так же создать к программе несколько ярлыков, запускающих netmon2.exe с параметром, например, config2.cfg, затем с config3.cfg и так далее — и несколько инстансов программы будет показывать разные хосты соответственно содержанию этих конфигов. Я понимаю, что задача становится всё более специфичной и всё меньше тех, кому еще утилита может быть полезна, но прежний функционал никто не отменял. Всё перечисленное теперь можно так же делать через правый клик мышкой по значку программы в трее.

55 комментариев

    • Bocha 17 марта, 2017 12:31 пп  Ответить

      Хорош — да, прост — далеко нет, супермного лишнего для моей задачи.

      • Никита Чуркин 17 марта, 2017 12:35 пп  Ответить

        Ну его можно перевести в службу. И далее просто прописать нужных адреса , потом пустить пинг.

        А Дюда весит и ни кому не мешает и можно ленива из трея запускать.

        Но за прогу спасибос полезная вещица.

  1. Михаил 17 марта, 2017 12:38 пп  Ответить

    Абнаружена Ачипятка:
    «#Всё довольно нагдяно»

  2. Евгений Проскурин 17 марта, 2017 12:38 пп  Ответить

    Может пригодится, только я библиотеку msvbvm60.dll укомплектовал версии 6.0.98.15. Я так понял она может потребоваться если UAC будет включен?

  3. Zenitur 17 марта, 2017 12:53 пп  Ответить

    Есть специалисты? Есть комп, на нём Wi-Fi, запущен hostapd. Всё — комп теперь роутер.

    1. Интересно смотреть кто сейчас подключен. На настоящем роутере так можно
    2. Шейпинг трафика. Допустим, весь канал это 50 мегабит, и мне не хочется чтобы кто-нибудь всё «отожрал»
    3. uPNP. На настоящем роутере «из коробки», а тут?
    4. А ещё мой телефон обнаруживает hostapd и говорит «Защита WPA2» и настоящий роутер «Защита WPA2, WPS». Что за WPS такой? Я тоже хочу!

    • Krey 21 марта, 2017 10:34 пп  Ответить

      В спортлото пиши.

      • Zenitur 22 марта, 2017 10:51 пп  Ответить

        Странно ты ЛОР и прочие айти-форумы назвал!

    • Zenitur 30 марта, 2017 2:11 пп  Ответить

      По пункту 3 — сделал с помощью miniupnpc. По пункту 4 — это авторизация путём нажатия кнопки вместо ввода пароля. Мне не нужно.
      Остаются актуальными пункты 1 и 2. Хочу ограничить скорость интернета — одним мегабитом для каждого клиента.

  4. Павел 17 марта, 2017 1:14 пп  Ответить

    Дмитрий, в чём и на чём писали (IDE, язык), если не секрет? Просто интересно.

    • Bocha 17 марта, 2017 1:41 пп  Ответить

      это vb6 и его родной ide, там в свойствах бинарника, да и по приложенной в посте библиотеке это понятно. Интересно, справедлив был бы текст этого поста, если бы писать такую тулзу на Крестах? Мне кажется, что нет.

      • Гость 18 марта, 2017 2:28 дп  Ответить

        Дмитрий отчасти этот текст может быть справедлив для PowerShell, там так же можно получить окошки через .NETовский WinForms/WPF. Конечно если этот скриптовый язык и данный стек технологий знаком тому перед кем стоит такая задача. Если знаком с VB6 можно попробовать реализовать такое же через VB.NET/C#.

        По самому мониторингу интересует такой вопрос, а в сети есть хосты с Windows 8.1/10? Если есть, то насколько знаю политика безопасности по умолчанию (правила в брандмаундер) блочат пинг. Это поведение изменено? Или все машины в сети помечены как доверительные хосты (выбрана сеть нужного типа)?

        Спасибо.

  5. Qraizer 17 марта, 2017 1:40 пп  Ответить

    Ну вот, а говорил, что не программист )). Вообще, подобные вещи легко пишутся в оболочке. Под виндой тут WSH самое то, фактически тот же VB, но скриптовый. Какая-нибудь *nix обязательно имеет bash в той или иной ипостаси. Но есть одно но: это пока не нужен GUI. Мне неизвестны красивые способы подружить скрипты с гуём.
    Zenitur, это Wi-Fi Protected Setup. Погугли, если интересно.
    Павел, VB6 очевидно же.

    • Гость 18 марта, 2017 2:32 дп  Ответить

      Qraizer Microsoft в качестве скриптового языка для Windows продвигает PowerShell, а у последнего есть доступ к .NET, на основе которого он и работает (с версии 2.0 так точно), в котором GUI можно рисовать или через WinForms или WPF.

  6. Doomguy 17 марта, 2017 1:59 пп  Ответить

    Неплохой монитор. Простой донельзя

  7. Doomguy 17 марта, 2017 2:05 пп  Ответить

    А вот чего ему действительно не хватает, так это сворачивания в трей

    • Bocha 17 марта, 2017 2:07 пп  Ответить

      Я скорее всего прикручу эту функцию, потому что она, мне, видимо, понадобится.

  8. Doomguy 17 марта, 2017 3:05 пп  Ответить

    Такой уже и в автозагрузку не стыдно добавить))

  9. Евгений 17 марта, 2017 3:22 пп  Ответить

    Тю, так взяли бы NetMap, для такой задачи. Очень простая в настройке пинговалка кучи хостов.

    • Bocha 17 марта, 2017 9:15 пп  Ответить

      Он хорош, пока эта «куча хостов» в пределах десятка-двух. Когда их 50 — он уже слишком много пространства на мониторе начинает занимать. Да и моя поделка тоже не справилась, пришлось дописывать фичи.

  10. Макс 17 марта, 2017 10:28 пп  Ответить

    Чувааааааааак!!!!! Это круто, очень нужно. Мне точно понадобится. Спасибо, Дмитрий.

  11. Василий Пупкин 17 марта, 2017 11:16 пп  Ответить

    У меня машин 18. И я написал простой баш скрипт который ежескундно нмапом смотри все сети и потом грепом их этого вывода я проверяю нужные мне айпишники. В авторане запускается консолька со скрипотм на одной из машин и я всё вижу. Вы ещё не пользуетесь башем? За вами выехали!1

  12. Тойво 18 марта, 2017 3:44 дп  Ответить

    А исходный код под лицензией BSD? )))

    Ладно, попробую сам написать.
    Вот скрипт понимающий формат конфига netmon:

    https://paste.kde.org/parsvv3tt

  13. ddddd 18 марта, 2017 3:19 пп  Ответить

    В часе 3600 секунд, а не 36000

  14. just_thor 18 марта, 2017 5:27 пп  Ответить

    Молодец, Дим, думаю пора уже добавить её меню:
    «2 МОИ ИГРЫ И СОФТ» =)

  15. ddddd 18 марта, 2017 11:00 пп  Ответить

    Можно добавить всплывающую подсказку «Узел * недоступен», когда программа свёрнута в трей и с узлом теряется связь

  16. sEr... 19 марта, 2017 12:17 дп  Ответить

    А исходников, что нет?

  17. Сергей Токаренко 19 марта, 2017 8:03 пп  Ответить

    А можно глупый вопрос — зачем их пинговать ? Какой в этом смысл?

    Если для целей проактивного обнаружения проблемы, и переключатся на резервный канал, то лучше уже настроить ip sla на какой-то циске а не руками это делать

  18. Илья Ганин 20 марта, 2017 6:41 дп  Ответить

    Еще один баг. В Win 10 ее стопит SmartScreen, и зависает рабочий стол. При отключении SmartScreen в Диспетчере — все робает как надо.

    • Илья Ганин 20 марта, 2017 6:44 дп  Ответить

      Если что — версия проги 1.0.7

  19. Janealter 20 марта, 2017 3:30 пп  Ответить

    comdlg32.ocx не зарегистрирован в системе, из-за этого программа не запускается, Windows 10

    • Гость 21 марта, 2017 11:40 пп  Ответить

      Да, Janealter, такая проблема есть при запуске программы в Windows 10.
      Одно из решений — скачать установщик Microsoft Visual Basic 6.0 Common Controls https://www.microsoft.com/en-us/download/details.aspx?id=10019 и распаковать (через 7z например), а не установить, нужный от туда файлов и зарегистрировать его через regsvr32 .

      • Евгений Проскурин 23 марта, 2017 4:02 пп  Ответить

        Позвольте поделиться своим решением проблемы. Я использую RuntimePack Lite. Там comdlg32.ocx версии 6.1.98.41, а в предложенном Вами вариантом 6.0.81.6. Да и не нужно вручную закидывать в SysWOW64 и регистрировать.

        • Janealter 27 марта, 2017 3:16 дп  Ответить

          Спасибо за решение!

  20. Макс 20 марта, 2017 5:44 пп  Ответить

    15 минут убил чтобы написать этот комментарий.
    Я наверное тут один такой кто рискнул с Пентиума 150 мгц зайти на сайт Димы. К слову, это 98 винда и браузер SeaMonkey версии 1.1.18.
    Вообще не верил в успех этого предприятия:)
    Дима, привет тебе!
    И, да , твоя аватарка в 256 цветах на S3Trio 1Mb, выглядит экзотически, ты на ней лет этак 30 прибавил. 🙂

    • Doomguy 21 марта, 2017 9:03 пп  Ответить

      Я на третьем пне и win98SE Сюда заходил=))

      • Макс 22 марта, 2017 12:01 дп  Ответить

        Doomguy, мы одной крови )))
        А теперь, раздели те ощущения на 3 и поймешь, какого это было у меня 🙂
        Почему на 3? Самый медленный P3 имел частоту в 450 мгц и 9.5 мил. транзисторов, это ровно в три раза больше.

  21. Артём Друзь 30 марта, 2017 6:35 пп  Ответить

    На Ubuntu 16.04 под Wine запускается, но пинги якобы не проходят.
    Возможно я совсем самонадеянный, но буду пытаться написать аналог на Qt.

    • Bocha 23 мая, 2017 1:17 пп  Ответить

      Да, я почитываю Уголок, видел ваш пост, прогу еще не пробовал, но поставил бы вам лайк, здорово.

  22. Андрей Гидулянов 25 сентября, 2017 4:45 пп  Ответить

    Вот прямо сейчас Ваша программка очень сильно пригодилась! Огромное просто спасибо 🙂

  23. Павел 25 октября, 2018 11:41 дп  Ответить

    Привет, Дим. Если в конфиге указать checkinterval больше 65, то вылетает ошибка:
    Run-time error ‘380’:
    Invalid property value

    ОС Windows 10 x64 1803.

Leave a comment

Войти с помощью: 

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.