Биллинговая система Nodeny

Главная категория => Курилка => Тема начата: poxy. от 31 Марта 2011, 10:26:44



Название: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 10:26:44
Добрый день! В sql не силен, поэтому прошу помочь с запросом для поиска определенного ip в детализации трафика. И как узнать кто на этот ip заходил? Спасибо!


Название: Re: Запрос к базе
Отправлено: 0xbad0c0d3 от 31 Марта 2011, 11:05:53
Код:
select u.name,concat(if(d.direction,'<','>'),inet_ntoa(d.ip),':',d.port) as dst_addr from z%Yx%mx%d as d left join users as u ON d.mid=u.id where d.direction=0 and d.ip=inet_aton('8.8.8.8');
z%Yx%nx%j -- формат для ф-ии date()
direction -- 1 - к клиенту;0 - от клиента.
8.8.8.8 -- IP с/на которого был пакет.


Название: Re: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 11:48:49
Спасибо! +1 к карме ;)


Название: Re: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 11:57:46
Но хотелось чтоб было так:
ввел ip в запрос и выдало кто и во сколько


Название: Re: Запрос к базе
Отправлено: 0xbad0c0d3 от 31 Марта 2011, 12:21:05
Код:
 select u.name,concat(if(d.direction,'<','>'),inet_ntoa(d.ip),':',d.port) as dst_addr,from_unixtime(unix_timestamp('%Y-%n-%j')+time) as date from z%Yx%nx%j as d left join users as u ON d.mid=u.id where d.ip=inet_aton('8.8.8.8');
%Y-%n-%j аналогично z%Yx%nx%j


Название: Re: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 20:04:47
Чтоб получить информацию кто и когда зашел на ip 95.169.10.72 ввел так:
Код:
select u.name,concat(if(d.direction,'<','>'),inet_ntoa(d.ip),':',d.port) as dst_addr,from_unixtime(unix_timestamp('%Y-%n-%j')+time) as date from %Y-%n-%j as d left join users as u ON d.mid=u.id where d.ip=inet_aton('95.169.10.72')
Код:
#1064 - 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 '%Y-%n-%j as d left join users as u ON d.mid=u.id where d.ip=inet_aton('95.169.10' at line 1
Что не так сделал? ???


Название: Re: Запрос к базе
Отправлено: 0xbad0c0d3 от 31 Марта 2011, 20:17:24
%Y-%n-%j -- ЭТО ФОРМАТ ВРЕМЕНИ
2011-3-31 - Для сегодня


Название: Re: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 20:51:29
чето никак не пойму, делаю
Код:
select u.name,concat(if(d.direction,'<','>'),inet_ntoa(d.ip),':',d.port) as dst_addr,from_unixtime(unix_timestamp('2011-03-31')+time) as date from 2011-03-31 as d left join users as u ON d.mid=u.id where d.ip=inet_aton('95.169.10.72')
выводит
Код:
#1064 - 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 '2011-03-31 as d left join users as u ON d.mid=u.id where d.ip=inet_aton('95.169.' at line 1
SELECT u.name, CONCAT( IF( d.direction,  '<',  '>' ) , INET_NTOA( d.ip ) ,  ':', d.port ) AS dst_addr, FROM_UNIXTIME( UNIX_TIMESTAMP(  '2011-03-31' ) + TIME ) AS DATE
FROM 2011 -03 -31 AS d
LEFT JOIN users AS u ON d.mid = u.id
WHERE d.ip = INET_ATON(  '95.169.10.72' )
LIMIT 0 , 30


Название: Re: Запрос к базе
Отправлено: 0xbad0c0d3 от 31 Марта 2011, 20:59:01
О ужас...
Код:
select u.name,concat(if(d.direction,'<','>'),inet_ntoa(d.ip),':',d.port) as dst_addr,from_unixtime(unix_timestamp('2011-03-31')+time) as date from z2011x3x31 as d left join users as u ON d.mid=u.id where d.ip=inet_aton('95.169.10.72');


Название: Re: Запрос к базе
Отправлено: poxy. от 31 Марта 2011, 21:06:52
ппц +1000 ! Спасибо! Как то меня сегодня перегрело, что даже не понял что нужно выгребать из таблиц  ;), а не с воздуха. Еще раз спс!