Определение людей дома с использованием ARP и SNMP

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Osirix
Сообщения: 7
Зарегистрирован: Чт ноя 24, 2016 11:16 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Определение людей дома с использованием ARP и SNMP

Сообщение Osirix » Чт ноя 24, 2016 11:48 pm

Добрый вечер!

Сразу хочу сказать что в системе Majordomo я полный чайник, и в программировании на PHP я так же полный ноль. Но я разбираюсь в сетях.
Возможно то что я хочу реализовать можно сделать как-то иначе, по этому не пинайте сильно, а направьте в нужную сторону.

У меня появилась идея как определять кто и в какое время приходит домой.
Я видел много идей как сделать это через прослушивание BlueTooth адресов от мобильных телефонах.
Это хорошая идея, но только многие люди не держат включенным BlueTooth на телефонах из-за его энергопотребления.
Но за-то держат включенным Wi-Fi.

Есть несколько методов как определить наличие включенного Wi-Fi модуля поблизости:
1. Слушать эфир Wi-Fi свистком который поддерживает Promisc mode (не все адаптеры поддерживают), с самого сервера Majordomo допустим если у него есть свободный свисток. В этом случае устройство не обязательно должно быть подключено к какой-то сети и это плюс.
2. Спросить у Wi-Fi маршрутизатора кто на нем зарегистрирован. Простейшим способом который я придумал это опросить его через SNMP на предмет его ARP таблички. Маршрутизатор Wi-Fi естественно должен поддерживать эту функцию. Не знаю как на счет устройств с оригинальной прошивкой, но с прошивками типа DD-Wrt, OpenWrt и им подобными это делается просто.

И вот что у меня получилось:
snmpwalk -v1 -c public -O n 10.100.1.1 1.3.6.1.2.1.4.22.1.2
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.2 = STRING: cc:7b:35:92:65:62
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.10 = STRING: 10:dd:b1:ef:73:cf
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.127 = STRING: 88:53:95:4b:85:94 <- мой мобильничек
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.128 = STRING: c0:b0:2d:8f:42:9e
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.135 = STRING: 58:55:ca:46:c1:77 <- Жена
.1.3.6.1.2.1.4.22.1.2.0.10.100.1.139 = STRING: 74:23:44:9b:95:f1 <- Дочка
.1.3.6.1.2.1.4.22.1.2.0.192.168.1.1 = STRING: e4:77:23:f8:a3:7c

По скольку современные мобильные телефоны постоянно куда-то что-то отправляют то и их запись в таблице ARP не исчезает пока аппарат находится в зоне действия Wi-Fi точки доступа.

Далее я создал класс объектов People и добавил в него объектами членов моей семи. Так же Классу добавил свойство для дочерних объектов назвал PhoneMAC и Pace.
Соответственно в свойство PhoneMAC добавил MAC адреса их сотовых телефонов.

И на этом у меня все остановилось.
Я понятия не имею что мне делать дальше. Что бы когда бы выполнялась моя команда и в выводимой табличке присутствовал MAC члена семьи то его свойство Place менялось бы на "Home", а когда пропадал то на "Unknown" допустим.

Полагаю что надо написать скрипт или на PHP с опросом соответствующих SNMP OID или парсить вывод команды которую я привел выше.
Как вам моя идея?

Возможно кому-то моя идея понравится на столько что он захочет ее реализовать?
Я сам попробую, но как я говорил выше, на PHP я никогда не писал. И как получить из него доступ к объектам Majordomo видел только в примерах...

Мне так же очень интересны ваши идеи по всему этому поводу!
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Ivan » Пт ноя 25, 2016 12:24 am

У меня роутер выдает статический адрес телефонам. А МажорДомо пингует. Работает без костылей

Отправлено с моего SM-G7102 через Tapatalk
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

Re: Определение людей дома с использованием ARP и SNMP

Сообщение SolarW » Пт ноя 25, 2016 10:31 am

На микротиках есть возможность:
- выдавать один и тот же айпишник одному MAC-адресу
- выполнять скрипт при выдаче/освобождении айпишки DHCP-сервером (в т.ч. дергать внешний сервер по http)
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Ged » Сб ноя 26, 2016 12:40 am

ЧТо-то с MAC адресом есть:
плюс работы то, что не важно закрыт ли фаерволом компьютер/телефон или нет.
минусы:
  • нужно рисовать свой обработчик
  • требуется "умный" роутер
  • работает только в локальной сети
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Ivan » Сб ноя 26, 2016 1:12 am

Телефон по любому конектится в вошу сеть. Роутер только выдает статический ип по маку.
А мадож через модуль "устройства онлайн" находит телефон и выполняет нужный скрипт

Отправлено с моего SM-G7102 через Tapatalk
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Sas
Сообщения: 207
Зарегистрирован: Вт июл 12, 2016 6:16 pm
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Sas » Сб ноя 26, 2016 10:46 pm

Ged писал(а):ЧТо-то с MAC адресом есть:
плюс работы то, что не важно закрыт ли фаерволом компьютер/телефон или нет.
минусы:
  • нужно рисовать свой обработчик
  • требуется "умный" роутер
  • работает только в локальной сети
Почти все роутеры даже с родной прошивкой умеют отправлять свой лог на сервер syslog.
Я отправляю лог кинетика на малину2 где грепаю состояние устройств и отправляю в мжд по mqtt

*** Сообщение запрещено. Включите JavaScript. ***
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Ged » Вс ноя 27, 2016 3:26 am

про syslog это клевая тема.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Определение людей дома с использованием ARP и SNMP

Сообщение shemnik69 » Пн ноя 28, 2016 8:26 am

Предложу еще свой вариант.
ПРо определение роутером телефонов в домашней сети тут все правильно. МД это умеет и делает без каких либо трудностей.
На счет включения WiFi.
Если телефон Андроид, то ставите либо Таскер, либо его аналоги (сам несколько лет пользуюсь Automateit (Pro) практически аналог Таскера (проще) так он включает и сетку, и блютуз и все остальные нужные опции . Например по времени, по активности . по "положению" (скажем он верткально, и например вставлен в держатель) либо лежит плоско "на спине". Либо подключено ЗУ. Короче масса вариантов как для самого телефона, так и для его владельца. :D Да и за GPS следит хорошо.
Например блютуз, он включает как только "понимает" что он в машине. Есть такой режим определения по датчику положения телефона сматрфона (кстати у меня не телефон, а 7"" планшет с функцией телефона) и вот как настроил, так и забыл уже ... бЛютуз например в моем варианте играет роль "флага" что завели автомобиль и можно открыть ворота. также и есть другие варианты.
НО скажу блютуз, вещь очень капризная ..."свисток", по опыту, лУчше работает не современный микро, а ранний, крупный, РАЗМЕРАМИ как флешка.
Эти, как правило, и более чувствительные и видимо в них размеры антены отвечают условиям работы. По крайней мере "старый" свисток у меня в разы, более "чуткий" и "дально бойный" чем новый.
Добавте еще например 1 -2 датчика движения в самых загруженных местах помещения (кухня. санузел. проход. и пр) и будет море информации.
Конечно датчики могут реагировать, скажем на домашних животных (это возможно), как вариант отсечение зоны видимости ДАТЧИКА, например наклеить полоску фольги (ЗАКРЫТЬ ЗОНУ) на линзу (внутри) либо установить сам датчик с учетом такой помехи.
Еще неплохой вариант дают УЗ датчики (но опть же ...домашние животные, их не очень любят... все же УЗ для их слуха не есть хорошо.
А в целом способ определения дома/не дома как начальное определение работает.
Добавим сюда, еще датчики закрытой двери, сниженное потребление по сети (всё выкл). отсутствие "пинга" смарт телевизоров (они как правило всегда вкл. если кто дома) "пинг" компютеров и пр.. и условно можно методом исключения (алгоритм обработчик) получить картинку "кто-то дома есть"... или же нет.

ТОже самое и на те-же айфоны наверное программы есть аналоги.
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Определение людей дома с использованием ARP и SNMP

Сообщение Jager » Пн ноя 28, 2016 8:48 am

Ged писал(а):про syslog это клевая тема.
Это точно, вот что вчера нашел.
craber
Сообщения: 38
Зарегистрирован: Ср апр 27, 2016 11:19 pm
Благодарил (а): 11 раз
Поблагодарили: 2 раза

Re: Определение людей дома с использованием ARP и SNMP

Сообщение craber » Пн ноя 28, 2016 5:23 pm

А чем стандартный функционал "Устройства Online" не подходит?
У меня работает уже давно. Ни каких сбоев не замечено.
Ответить