Название: Хранение и отображение MAC адресов. Отправлено: Roman от 30 Августа 2017, 17:20:55 Доброго дня всем, есть проблема с отображением мак адресов.
Авторизация Mikrotik+Radius. В таблицу auth_log в поле properties radius кладет инфу в таком виде Код: mod=pppoe;user=F4:EC:38:F2:40:0F;nas=10.20.0.2 В таблице маков по урлу /cgi-bin/stat.pl?a=auth_mac все отображается приблизительно так Код: :0:B::D4::5:9::95 При заходе в карточку клиента и попытке просмотреть список последних авторизаций вывод такой Код: 30.08.2017 16:33 1 час 41 мин 172.50.2.164 pppoe :6:B::3F::6:2::57 nas=10.20.0.2,vlan=EC:08 При нажатии на ссылку мака, формируется урл следующего содержания. Код: /cgi-bin/stat.pl?a=mac_info&mac=%3A6%3AB%3A%3A3F%3A%3A6%3A2%3A%3A57 Код: Информация по мак-адресу 00:06:0b:00:3f:00:06:02:00:57 Мало того, руками подменял урлы и правильной длины и правильный мак, который есть в базе. Не ищет :( Куда рыть? Название: Re: Хранение и отображение MAC адресов. Отправлено: Efendy от 30 Августа 2017, 17:44:55 При записи в базу из мака должны удаляться разделители, в процедуре radupdate должно быть подобное:
Код: SELECT REPLACE(login, ':', '') INTO usr_mac; http://nodeny.com.ua/wiki/index.php/Dhcp%2BRadius Название: Re: Хранение и отображение MAC адресов. Отправлено: Roman от 30 Августа 2017, 18:21:09 Если я правильно понял, мак должен быть без разделителей?
Ок, попробую конвертануть базу. Название: Re: Хранение и отображение MAC адресов. Отправлено: Roman от 30 Августа 2017, 18:49:56 У меня процедуры для PPPoE и они отличаются. Сейчас приведу свои.
Radreply ничего не пишет в базу. Код: BEGIN Этим занимается set_auth Код: BEGIN И по окончании сессии отрабатывается radstop Код: BEGIN Насколько я понял, все упирается в этот sql запрос Код: INSERT INTO auth_log (`uid`,`ip`,`start`,`end`,`properties`) VALUES (usr_id,INET_ATON(usr_ip),startses,UNIX_TIMESTAMP(),usr_proper); насколько я понял, эта строка Код: mod=pppoe;user=F4:EC:38:F2:40:0F;nas=10.20.0.2 Название: Re: Хранение и отображение MAC адресов. Отправлено: Roman от 30 Августа 2017, 19:05:53 Скорее всего мне поможет эта строка в radupdate нужно сделать замену.
Код: CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':',''))); ну и в radstop внести что-то подобное. Название: Re: Хранение и отображение MAC адресов. Отправлено: Roman от 31 Августа 2017, 12:58:14 Скорее всего мне поможет эта строка в radupdate нужно сделать замену. Код: CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':',''))); Да, именно это и помогло. Старую базу скопировал в новую sql запросом Код: insert into `auth_log_test` (`id`,`uid`,`start`,`end`,`properties`) SELECT `id`,`uid`,`start`,`end`,REPLACE(`properties`,':','') as `properties` FROM `auth_log` После этого старую грохнул а новую переименовал. Теперь даже прошлые маки отображаются корректно. Вопрос решен. Тему можно закрывать. |