Как сделать? Вытаскивать МАК адреса из DHCP пакетов

Wiring, Processing, библиотеки

Как сделать? Вытаскивать МАК адреса из DHCP пакетов

Сообщение VIPGraff » 13 фев 2016, 18:06

Помогите реализовать идею. Я честно пытался сам получать гуляющие DHCP пакеты, но увы моя каша не работает. От слова совсем.

Цель:
При появлении телефона в сети, включать свет в подъезде.
Хочу реализовать это на ардуинке подключенной к локальной сети через езернет шилд W5100.
Исполнительное устройство: свет на улице, телефон подключается к Wi-Fi немного раньше попадания в освещаемую зону.

Что имеем:
Телефон при обнаружении WiFi, подключается к сети. Получение IP адреса по DHCP.
Готовая библиотека получения DHCP адреса для W5100, но у меня не получается ее переделать в свою библиотеку, чтобы она принимала все DHCP пакеты и возвращала МАК адреса устройства.

Дополнительный аргумент в пользу парсинга МАКов, охранять безопасность сети.
По принципу как с работой RF приемником.

Чтобы можно было построить выражние типа:
Код: Выделить всё

IF ResivedMAC 
== 112233445566 OR ResivedMAC == 998877665544 Then
  
// включить свет;
ELSEIF ResivedMAC == 889977665544 Then
  
// ничего не делать;
ELSE
  // бить тревогу, чужие в сети;
END;  

Для новых заглянувщих в тему краткий FAQ идей по реализации:
  • 1. bluetooth и датчик движения - использовать не вариант, из-за большого расстояния, необходимое расстояние только Wi-Fi дает.
  • 2. задать статические адреса и постоянно пинговать - выглядит не совсем правильным, из-за постоянно гуляющих запросов, которые будут долбить пока устройство в сети (будет ли себя хорошо чувствовать устройство под постоянной атакой пинга, знаю что айфоны уходят в энергосбережение и не отвечают на пинг)
  • 3. Читал про приложение Tasker, но хотелось бы обойтись без задействования дополнительного ПО
  • 4. Дома используется 3G интернет, "снаружи" доступ отсутствует. Сервера дома - нету. Есть роутер с OpenWRT. Сервера с белым IP - нету.

Я рассматривал эти идеи до создании темы, но нету знаний в реализации задуманного:
  • 1. На роутере стоит OpenWRT. Знаю что можно спарсить оттуда МАК. Что бы роутер "скриптом проверял подключившихся" и передавал команды(или МАКи) на ардуину.
  • 2. Парсить МАКи из ARP пакетов, они то всегда ходят в сети. Но информацию для меня понятную, как это делать не нашел.
  • 3. Парсить МАКи из гуляющих DHCP запросов. Запросы в сети появляются когда устройство подключается или продлевает аренду (Что меня устраивает).
VIPGraff
 
Сообщения: 2
Зарегистрирован: 13 фев 2016, 14:09

Re: Как сделать? Вытаскивать МАК адреса из DHCP пакетов

Сообщение noonv » 15 фев 2016, 11:50

Т.е. чтобы был включён bluetooth - не хотите, а чтобы был включён Wi-Fi - годится? :du_ma_et:
Аватара пользователя
noonv
Администратор
 
Сообщения: 553
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Как сделать? Вытаскивать МАК адреса из DHCP пакетов

Сообщение VIPGraff » 15 фев 2016, 11:59

noonv писал(а):Т.е. чтобы был включён bluetooth - не хотите, а чтобы был включён Wi-Fi - годится? :du_ma_et:

bluetooth не годится по причине большого расстояния.
VIPGraff
 
Сообщения: 2
Зарегистрирован: 13 фев 2016, 14:09

Re: Как сделать? Вытаскивать МАК адреса из DHCP пакетов

Сообщение noonv » 15 фев 2016, 12:26

Тогда первый вариант кажется самым разумным:
1. На роутере стоит OpenWRT. Знаю что можно спарсить оттуда МАК. Что бы роутер "скриптом проверял подключившихся" и передавал команды(или МАКи) на ардуину.
Аватара пользователя
noonv
Администратор
 
Сообщения: 553
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++


Вернуться в Программирование

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

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

© 2009-2017 |  О проекте  |  Политика Конфиденциальности  |