PDA

Просмотр полной версии : Мониторинг контроллеров GameKeeper с помощь Friendly Pinger 5.0.1



NeiroN
20.04.2016, 21:01
Давно как то возникла идея мониторить контроллеры Game Keeper с помощью Friendly Pinger (http://www.kilievich.com/rus/fpinger/), но загвоздка была в том что они не отвечают на пинг.

Контроллеры Game Keeper отвечают только по своему протоколу на порту 18251 или 18252.

Поковыряв логи gkNetMonitor я выяснил как происходит обмен:

*0 20.04.2016 14:40:28> 255.255.255.255:18251 <- 00 00 00 0D 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00
4 20.04.2016 14:40:28> ALL:18251 <<< NOTIFY 0000
*0 20.04.2016 14:40:28> 255.255.255.255:18252 <- 00 00 00 0D 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00
4 20.04.2016 14:40:28> ALL:18252 <<< NOTIFY 0000

*0 20.04.2016 14:40:28> 172.31.52.5:18251 -> 01 02 00 1E 00 00 00 00 00 03 00 00 02 03 0E 14 04 01 08
5 20.04.2016 14:40:28> 172.31.52.5:18251 -> RESPONSE 0200 3.00.0.030 14.03.2.000 8.01.4.020


*0 20.04.2016 14:40:28> 172.31.50.2:18251 -> 01 02 00 23 00 00 00 00 00 03 00 00 00 00 6C 00 00 00 00
5 20.04.2016 14:40:28> 172.31.50.2:18251 -> RESPONSE 0200 3.00.0.035 108.00.0.000 0.00.0.000

Монитор шлет брудкасты и ловит ответы на них. Формат отправляемого запроса я сохранил как есть. На delphi пришлось писать парсер ответов, чтобы получить версию прошивки и аппаратной платформы.

От брудкаста решил отказаться так как FPinger мониторит каждое устройство отдельно.

Получившийся плагин шлет пакет к каждому контроллеру отдельно и ловит его ответ.

Для установки нужно архив (https://yadi.sk/d/uywHERGpr9vAG) (там библиотека и исходник)
Распаковать в папку с плагинами, Добавить новый тип устройства "Игровой контроллер", установить ему этот плагин, добавить порты 18251 и 18252 в список сервисов FPinger (http://www.kilievich.com/rus/fpinger/) - по аналогии с теми что уже есть. И добавлять на карту игровые контроллеры - понятное дело что FPinger надо запускать на серваке или компе с доступом в сеть контроллеров.

Основное отличие от gkNetMonitor - плагин не сканирует сеть, адреса контроллеров должны быть известны заранее.

Плагин никак не связан с сервисами GameKeeper и базой данных, так что может быть использован даже во время монтажных работ.

---------- Добавлено в 21:01 ---------- Предыдущее сообщение было размещено в 19:59 ----------

Пока тестировал только с одни контроллером все было нормально, но как только добавил еще - один ловит ответы другого.

Хз как решить...

NeiroN
21.04.2016, 23:39
Добавил пару десятков - вроде работает, для адреса отвечающего контроллера завел отдельную переменную и добавил сравнение адреса запрашиваемого контроллера и ответившего - вроде все чотко, правда иногда "Access Violation" проскакивает. Надо перепроверить все переменные.

Aqui
14.07.2016, 19:46
Можете приложить services.txt, если он у вас сохранился?

NeiroN
16.07.2016, 12:56
Вот содержимое Services.txt в папке Connect


Echo 7
FTP 21
Telnet 23
SMTP 25
Time 37
Domain 53
Gopher 70
Finger 79
HTTP 80
POP3 110
Auth 113
NNTP 119
NetBios-NS 137
NetBios-SSN 139
IRC 194
HTTPS 443
Printer 515
MS-SQL 1433
WINS 1512
PPTP 1723
GK-CONTROL 18251
GK-CONTROL-N 18252
Лучше всего мониторить не более одного контроллера - так как протокол UDP может возникнуть "гонка" когда ответят оба контроллера и не будет обработан один из ответов. Я ставлю все на паузу - и моиторю только нужный, но если как то настроить задержку между пингом каждого из устройств.

gopher
25.04.2017, 17:22
Доброго вемени!
Недавно понадобилась тоже такая штука для мониторинга, решил попробовать разработку NeiroN-a. Задумка хорошая, но Access violation проскакивает регулярно, что печально.
Не удалось ли это как-то побороть или может что другое приспособить под это дело получилось?

И еще вопрос. У меня не видятся контроллеры которые по беспроводке подключены по ZB. :( Невидятся даже стандартным netMonitor-ом :( А хотелось бы видеть, что там со связью делается. Это у всех так, может подскажет кто?

Заранее благодарен.

NeiroN
20.05.2017, 11:49
Если бы они у меня были для эксперементов - то возможно от скуки я бы и для них сделал мониторинг.

Я также писал вэбверсию мониторинга, с картой.У каждого аппарата есть поля POSX и POSY, Area - которые я использовал для хранения данных для карты.
В вэбверсии используется скрипт на питоне чтобы общаться с контроллерами по UDP.

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