<<< Back

Проверка подключения/отключения устройства к wifi сети из сислога роутера


Xor (2018-06-12 01:32:25):

Не для win-систем.
Для WIN что-то подобное https://help.keenetic.com/hc/ru/articles/213966129...

(0)
 
Sas (2018-06-12 01:50:00):

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

(0)
 
Xor (2018-06-12 20:44:57):

Да, по указанной ссылке рассказывается о двух сислог-серверах для винды

(0)
 
Sas (2018-06-13 15:46:37):

Допилил скрипт для игнорирования проверок известных и ненужных нам мак адресов

(1)
 
Sas (2018-10-14 14:32:50):

Исправил:
1) При ротации логов терялся файл лога и раньше надо было перезапускать скрипт.
2) Ошибка при поиске игнорируемых домашних маков на которые не надо реагировать
скрипт всегда возвращал false и поэтому реагировал на них как на "неизвестные"

(1)
 
Svetлая (2019-02-06 14:43:58):

Уважаемый ТС, поправьте заголовок статьи, добавьте в него "из сислога роутера".
В противном случае получается "медвежья услуга" для тех кто не читал постные скучные книги по сетям и не понимает как сеть и железо работает.

Для тех кто не читал поясню. Что бы в сислог что то попало, железка делает эхозапрос (пинг) на устройства которые к ней подключены. Результат пишет в лог по запросу. После чего Вам предлагается написать кучу не понятных слов, залезть туда, куда лазить без знаний нельзя (удалите или добавите не то что надо и ваш роутер может стать кирпичом).
Если следовать заголовку статьи, то проще, быстрее и надёжнее запросы делать из самого мжд на прямую к требуемому устройству. Для этого в самом мжд есть "устройства онлайн".

П.С. Как часто в Вашей домашней сети появляются "левые" устройства? Может стоит попросить кого-нибудь из знакомых, кто умеет настраивать? Это не ирония. Именно так воспринимается новичками Ваши строки.

(0)
 
Sas (2019-02-06 16:51:03):

Добрый день уважаемый/ая Svetлая
Вы как раз все неправильно поняли. никакие железки ломать не надо, никаких пингов никто не делает, как не делает никаких кирпичей.
1 Вы прописываете в роутере ip сислог сервера и все.
Даже если сислог сервер будет "лежать" вашему роутеру это никак не помешает работать дальше как и прежде.
2 При подключении устройства к вайфай сети роутер пишет в лог событие о подключении и отправляет этот лог на ip прописанного сислог сервера
где уже его парсит мой скрипт и отправляет его в мжд без всяких пингов, и кирпичей, ага

Проще и быстрей, да, через пинги, но не надежней.
В моей сети достаточно часто появляются новые железки и мне удобно знать что она подключилась/отключилась к сети

(0)
 
Svetлая (2019-02-06 17:08:09):

Добрый день)

  1. Я то пропишу, но речь не о тех кто знает с какой стороны подходить к железке. Основная категория людей которая здесь читает как не странно - люди не знающие ничего и желающие постичь истину не читая книг.
  2. а. нет актуальной картины, хоть это и не критично
    б. много телодвижений для получения того же результата что и через мжд
    в. для тестов не городят, а пользуются тем что есть - собственный интерфейс роутера, который отображает всю необходимую инфу.
    есть и г и д и...
    Думаю Вы меня не так поняли. Я не писала что Ваш труд - фигня полная. Я попросила что бы Вы чуть изменили заголовок, что бы было понятно для людей кто в теме. А новичкам всё равно как назвать.

П.С. Вы противоречите ))) Ваш способ собирает то что сам напинговал ;)
У меня складывается мнение что с сетями Вы знакомы плохо.

(0)
 
Sas (2019-02-06 18:09:02):

1 большинству эта статья вообще никак не поможет даже если человек в теме. тут еще железки не все умеют отдавать свой лог с dhcp на сторонний сервер
2 результаты совсем разные - в статье не про пинги
3 вы знаете что такое dhcp? причем тут лог dhcp роутера про парсинг которого и идет тут речь и пинги?

(0)
 
Svetлая (2019-02-07 08:57:01):

Dynamic Host Configuration Protocol — протокол динамической настройки подключаемого клиента — сетевой протокол, позволяющий сетевым устройствам автоматически получать IP-адрес с параметрами установленных правил.
Какое отношение имеет к статусу клиента? На сколько я помню, флаг аренды адреса имеет всего один бит который говорит выдан или не выдан адрес. Это касается как привязанных так и общих. Срок аренды выдачи настраивается По умолчанию, во многих системах равен 24 часам. В сети арендовавшее адрес устройство или нет, данный протокол не отслеживает, поэтому, если ip привязан, то при подключении еще можно вовремя получить сведения, если логируется всё, но дальше актуализации нет. Можно конечно настроить, но зачем такие сложности?

Меня с толку сбило последовавшее обсуждение Вашей статьи на форуме. Признаю, не права, не с той стороны посмотрела. А за статью спасибо. Мне может и не пригодится, но обязательно кто-то будет искать ответы на свои вопросы и прочитав Ваш труд, найдёт. На форуме удалили ссылки на статью, прошу не удалять саму статью, можно просто коменты подчистить.

Ещё раз спасибо за Ваш труд!

(0)
 
Sas (2019-02-07 09:57:54):

При подключении роутер отдает в лог:
2018-06-13T22:19:05+03:00 192.168.1.1 wmond: WifiMaster0/AccessPoint0: (RT2860) STA(11:22:33:44:55:66) had disassociated.
При отключении(клиент вышел из сети, сел телефон и тд) роутер отдает:
2018-06-13T22:19:41+03:00 192.168.1.1 wmond: WifiMaster0/AccessPoint0: (RT2860) STA(11:22:33:44:55:66) had associated successfully.
Некоторые отдают другое и этот скрипт просто для отлова нужного из лога. собсна как пример
Я дома выкидываю полученные новыми устройствами ip в телегу для того чтоб знать где сразу искать тестовое устройство

(0)
 
Svetлая (2019-02-07 10:27:23):

Я читала Вашу статью, спасибо)
думаю стоит прекратить мерятся знаниями)

(0)
 
IvanShatrykin (2019-02-24 17:17:56):

Добрый день!
Ваша идея, как мне показалась, самая правильная. Роутер "держит" клиента и знает о нем пока он не отключится принудительно от сети или не выйдет из зоны действия. Пинговать не получается, так как я прихожу домой и мой телефон не пингуется пока я его не включу. Если открыть телефон, потом просто положить на стол, то пинг пропадает. Но роутер все еще знает, что телефон тут в сети.

С настройкой возникли сложности.
Не могли бы Вы подробнее остановиться на настройке МД. У меня в лог пишутся события, а дольше...

  1. Где находится файл cycle_checkdhcp.php? У меня его нет.
    $file='/var/log/dhcp.log'; // полный путь к лог файлу полученного от роутера
    Так понимаю, что dhcp.log это файл, который получается 192.168.1.1.log ??? Имя же исправляем?

$my_dev=array('PHONE_NAME' => '11:22:33:44:55:66'); // имя устройства для поиска(ОБЪЕКТ => его мак ) и в этом объекте создаем свойство status
т.е. в МД нужно создать объект с именем телефона, ему создать свойство status? Вот тут поподробнее, если можно. Или имя объекта его mac адрес? А два телефона если? Это два разных объекта... Тогда эту строку как пишем?

  1. Файл readlog.php в modules/dhcp/readlog.php создал и завел туда код

Понимаю, что мои вопросы тупые, но все же.

В общем, роутер пишет в лог. Но пока этот лог я не читаю. Направьте, пожалуйста.

(0)
 
Sas (2019-02-25 00:08:57):

В мжд надо создать класс "устройства" например Device, создать объект например samsung/sony/iphone, а у него свойства:
mac - где будет мак устройства
status - где будут статусы connected/disconnected
user - где у меня записан пользователь из класса Users чтоб понимать кого считать онлайн
ну и всякие timeStampt для хранения времени события.

cycle_checkdhcp.php надо положить в директорию мажордомо scripts и перезапустить mjd - systemctl restart majordomo(если линукс)
потом можно проверить стартанул ли скрипт ps ax| grep cycle_dhcpcheck | grep -v grep
дожно быть что то типа
ps ax| grep cycle_dhcpcheck | grep -v grep
29754 ? S 0:08 php -q ./scripts/cycle_dhcpcheck.php --params a:0:{}

$file='/var/log/dhcp.log';
Да, это путь к логу полученного от роутера
он у каждого свой может быть. зависит от настройки rsyslog

(1)
 
Sas (2019-02-25 00:11:11):

И еще
Рекомендую включать/выключать этим способом только NobodyHomeMode.
SecurityMode включать отдельно или кнопкой или командой (голос/телеграм)

(0)
 
znachok88 (2019-11-13 16:22:27):

в папке scripts создаю файл cycle_checkdhcp.php в него то что у вас написано....но цикл не хочет запускаться ...как обмануть?

(0)
 
Sas (2019-11-13 17:22:29):

мжд после рестартовали?

(0)
 
znachok88 (2019-11-13 20:46:17):

Ну конечно , даже перезагружал малину для полной уверености

(0)
 
Sas (2019-11-15 12:54:50):

Путь к файлу лога правильный? /var/log/ФАЙЛ.log?
запустить руками в консоли php /полный/путь/к/cycle_checkdhcp.php

(0)
 
znachok88 (2019-11-19 01:17:45):

pi@MajorDoMo:~ $ php /var/www/html/scripts/cycle_checkdhcp.php

Fatal error: Uncaught Error: Class 'DHCPCHEC' not found in /var/www/html/scripts/cycle_checkdhcp.php:15
Stack trace:

0 {main}

thrown in /var/www/html/scripts/cycle_checkdhcp.php on line 15
pi@MajorDoMo:~ $

(2)
 
Strangeman (2024-11-27 14:25:11):

Подниму тему. Попытался реализовать и наткнулся на то же:
PHP exception (code 0, ): Class 'DHCPCHEC' not found in /var/www/scripts/cycle_checkdhcp.php on line 15

Понятно, что не находит класс, но пока не понял почему. Пробовал указать полный путь - не помогло. Очевидно, что проблема в самом файле readlog.php. Надо разбираться.

(0)
 
Strangeman (2024-11-27 14:34:38):

А ларчик просто открывался...
В readlog.php
class DHCPCHECK{
А вот в cycle_checkdhcp.php
$c = new DHCPCHEC($file,$con_mes,$dis_mes,$my_dev,$ignore_dev);

Ну, как бы и не должно работать :)
Я исправил у себя в cycle_checkdhcp.php DHCPCHEC на DHCPCHECK, ибо, так правильно орфографически.

(0)
 
Strangeman (2024-11-27 14:38:19):

B X-Ray отображается как остановленный, хотя должен работать. Странно.
Буду дальше разбираться.

(0)
 

Please login to leave comments. Join us!