forum.bitel.ru http://forum.bitel.ru/ |
|
Как вытащить айпи шлюзов и порты для всех договоров http://forum.bitel.ru/viewtopic.php?f=19&t=5802 |
Страница 1 из 2 |
Автор: | S-10 [ 18 авг 2011, 12:44 ] |
Заголовок сообщения: | Как вытащить айпи шлюзов и порты для всех договоров |
Будьте здравы, человече! Нужно составить sql-запрос, который вытащит из базы билинга айпишники шлюзов ipn и порты для всех договоров. Порывшись в дбинфо.бител.ру вроде бы нашел нужные параметры: ipn_gate_host - айпишник прописаного шлюза ipn_gate_port - прописаный порт contract.title - название договора |
Автор: | S-10 [ 19 авг 2011, 05:49 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
И еще, что-то не могу найти в дбинфо значение мак-адреса абонента. Ткните носом ![]() |
Автор: | skyb [ 19 авг 2011, 06:00 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Код: log_session_{mid}_yyyyMM 2648 from_number char(30) false с номера тык ![]() |
Автор: | S-10 [ 19 авг 2011, 09:29 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Хорошо. Осталось только наваять запрос. Чтобы для всех договоров выводился айпи шлюза, порт шлюза и последний мак-адрес Эскуэльщики помогите. ![]() |
Автор: | snark [ 19 авг 2011, 13:02 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
skyb писал(а): Код: log_session_{mid}_yyyyMM 2648 from_number char(30) false с номера тык ![]() Прежде чем тыкать _внимательно_ читаем: S-10 писал(а): Нужно составить sql-запрос, который вытащит из базы билинга айпишники шлюзов ipn и порты для всех договоров. Человеку нужен ipn, а не dialup ![]() ЕМНИМС сам ipn о МАС-ах ничего не знает, т.к. о них знает только DHCP сервер. В общем виде надо на основе данных из ipn_user_gate_{mid}, на основе cid, получить title из contract, а на основе fwid получить host и port из ipn_gate_{mid}. У меня нет ipn чтобы проверить, но попробуйте что-то типа такого: Код: SELECT
(SELECT title FROM contract WHERE id = iug.cid) AS user, (SELECT host FROM ipn_gate_{mid} WHERE id = iug.fwid) AS host, (SELECT port FROM ipn_gate_{mid} WHERE id = iug.fwid) AS port FROM ipn_user_gate_{mid} AS iug |
Автор: | skyb [ 19 авг 2011, 15:39 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
snark писал(а): skyb писал(а): Код: log_session_{mid}_yyyyMM 2648 from_number char(30) false с номера тык ![]() Прежде чем тыкать _внимательно_ читаем: ![]() маки неважно от куда будут, сессии идут с диалапа, от туда можно взять эти маки, а потом просто сотставить запрос к получению ip и порта шлуза... ??? PROFIT |
Автор: | S-10 [ 06 сен 2011, 12:58 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
есть два запроса: первый вытягивает имя договора и порт шлюза ipn select contract.title as 'dogovor', cpar.val as 'ipn_ip' from contract left join contract_parameter_type_1 as cpar on contract.id = cpar.cid and cpar.pid = 5 order by title второй вытягивает имя договора и айпишник шлюза ipn select contract.title as 'dogovor', cpar.val as 'ipn_ip' from contract left join contract_parameter_type_1 as cpar on contract.id = cpar.cid and cpar.pid = 7 order by title покажите, пожалуйста, как объединить эти два запроса в один и еще добавить вытягивание мак-адреса абонента |
Автор: | focus [ 06 сен 2011, 14:44 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Попробуй Код: SELECT c.id, c.title,c.comment,INET_NTOA(ur.addr1),INET_NTOA(ur.addr2), s.title, s.host_or_dir, ur.port1,ur.port2
FROM ipn_user_range_[mid] ur, ipn_user_source_[mid] us, source s, contract c WHERE ur.id=us.aid and us.source_id=s.id and c.id=ur.cid |
Автор: | focus [ 06 сен 2011, 14:44 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
S-10 писал(а): есть два запроса: первый вытягивает имя договора и порт шлюза ipn select contract.title as 'dogovor', cpar.val as 'ipn_ip' from contract left join contract_parameter_type_1 as cpar on contract.id = cpar.cid and cpar.pid = 5 order by title второй вытягивает имя договора и айпишник шлюза ipn select contract.title as 'dogovor', cpar.val as 'ipn_ip' from contract left join contract_parameter_type_1 as cpar on contract.id = cpar.cid and cpar.pid = 7 order by title покажите, пожалуйста, как объединить эти два запроса в один и еще добавить вытягивание мак-адреса абонента тут связывай через contract.id |
Автор: | S-10 [ 07 сен 2011, 05:34 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
если просто скопипастить ваш запрос в SQLeditor, то выдаёт следующее: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[mid] ur, ipn_user_source_[mid] us, source s, contract c WHERE ur.id=us.aid and ' at line 1 |
Автор: | focus [ 07 сен 2011, 06:05 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
вместо [mid] нужно подставить цифру - код модуля IPN. Смотрим этот код через клиента. Главное меню - Модули - Редактор модулей Там в левой таблице будет список модулей, вот там ищем нужный и из колонки код вставляем цифирь в запрос. |
Автор: | S-10 [ 07 сен 2011, 11:15 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
попробовал, но это совсем не то, что нужно мне. мне надо по номерам договоров вытянуть ип шлюза ipn, порт ipn и из модуля phone вытянуть log_session_from_number_201109 (вроде так), то бишь MAC-address абонента |
Автор: | snark [ 07 сен 2011, 12:20 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Как появлюсь на работе накатаю Вам скриптец который выдаст то что надо, раз skyb за 20 дней (столько прошло с момента 1-го поста) не смог это сделать. |
Автор: | skyb [ 07 сен 2011, 12:25 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
snark писал(а): Как появлюсь на работе накатаю Вам скриптец который выдаст то что надо, раз skyb за 20 дней (столько прошло с момента 1-го поста) не смог это сделать. вот чтожеж ты меня все время цепляешь то ![]() У меня другие задачи, я ща активно к переходу готовлюсь....а тут ещё и радиус падает ![]() |
Автор: | snark [ 07 сен 2011, 12:46 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
А кого тут еще цеплять? Тут ты один такой ))) |
Автор: | skyb [ 07 сен 2011, 13:16 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
snark писал(а): А кого тут еще цеплять? Тут ты один такой ))) хехе...хоть гдето отличился =) |
Автор: | S-10 [ 07 сен 2011, 13:28 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
snark, буду вам весьма признателен ) если чё, с меня +1 ) |
Автор: | S-10 [ 13 сен 2011, 13:33 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
и тишинааа... |
Автор: | S-10 [ 15 сен 2011, 10:20 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Подскажите, как вытянуть из модуля ipn вот это log_session_{mid}_yyyyMM from_number, то бишь мне нужно вытянуть мак-адреса |
Автор: | skyb [ 15 сен 2011, 11:03 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
select from_number from log_session_1_201109 |
Автор: | S-10 [ 16 сен 2011, 06:17 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Спс. Теперь как бы привязать номера договоров к макам, причем надо чтобы вытягивался только последний мак с которого выходили в инет. Что-то наподобие: (номер договора) (последний мак) 000001___________0000.1245.dfdf 000002___________0101.efbf.34aa 000003___________4161.eaff.44bb |
Автор: | snark [ 16 сен 2011, 19:07 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Код: SELECT (SELECT c.title FROM contract c LEFT JOIN user_login_{mid} AS ul ON (ul.cid = c.id) WHERE ul.id = lid) AS dogovor, from_number AS MAC FROM log_session_{mid}_yyyyMM Договор и его МАС из таблицы сессий. |
Автор: | S-10 [ 19 сен 2011, 11:26 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Большое спасибо! Работает! ![]() Только почему то на многих договорах вместо номера выводит NULL | NULL | 00de.fa27.a103 | | 001367 | 0016.17d9.b319 | | NULL | 0080.4840.06ae | | 000300 | 485b.39e7.bea5 | | NULL | 0024.54dd.32d5 | | 008102 | 4487.fc5a.8f19 | | NULL | 0014.858e.127f | | 003757 | 6cf0.497d.e7b5 | | 107790 | 3408.04b7.a9c1 | | NULL | 001b.38d6.ee7b | | 006346 | f07d.6899.ffd1 | | 103437 | 0024.546a.5006 | | 007238 | 3408.04d5.2d51 | | 001584 | 000c.76e4.68f0 | | NULL | f07d.689f.0795 | Может подскажете из за чего это может быть? |
Автор: | S-10 [ 19 сен 2011, 13:28 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Этот запрос выводит маки всех сессий. А можно ли чтобы выводился мак только последней сессии? ![]() |
Автор: | snark [ 19 сен 2011, 17:39 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Для активных: Код: ... WHERE status = 0 для завершенных: Код: ... WHERE status = 1 А вообще, что мешает использовать GROUP BY или использующий его DISTINCT, для уникальности записей? |
Автор: | S-10 [ 21 сен 2011, 05:38 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Distinct выдаёт по несколько маков, с которых были сессии. А по поводу Null вместо имён договоров, ничего не можете подсказать? |
Автор: | snark [ 21 сен 2011, 19:03 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
S-10 писал(а): по поводу Null вместо имён договоров, ничего не можете подсказать? title в таблице contract для таких договоров заполнено? |
Автор: | S-10 [ 22 сен 2011, 05:44 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
Да, заполнено. Сделал запрос SELECT title FROM contract; , все номера договоров показываются как надо. (договоров с NULL нет) В чем еще может быть причина? |
Автор: | stark [ 22 сен 2011, 10:30 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
S-10 писал(а): Большое спасибо! Работает! ![]() Только почему то на многих договорах вместо номера выводит NULL | NULL | 00de.fa27.a103 | | 001367 | 0016.17d9.b319 | | NULL | 0080.4840.06ae | | 000300 | 485b.39e7.bea5 | | NULL | 0024.54dd.32d5 | | 008102 | 4487.fc5a.8f19 | | NULL | 0014.858e.127f | | 003757 | 6cf0.497d.e7b5 | | 107790 | 3408.04b7.a9c1 | | NULL | 001b.38d6.ee7b | | 006346 | f07d.6899.ffd1 | | 103437 | 0024.546a.5006 | | 007238 | 3408.04d5.2d51 | | 001584 | 000c.76e4.68f0 | | NULL | f07d.689f.0795 | Может подскажете из за чего это может быть? у вас в log_session_{mid}_yyyyMM случайно нет cid, которые ссылаются на несуществующие договора ? |
Автор: | S-10 [ 22 сен 2011, 13:53 ] |
Заголовок сообщения: | Re: Как вытащить айпи шлюзов и порты для всех договоров |
stark писал(а): у вас в log_session_{mid}_yyyyMM случайно нет cid, которые ссылаются на несуществующие договора ? а как это узнать? |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |