IP адрес в БД

Технические вопросы по UTM 5.0
mesmit
Сообщения: 6
Зарегистрирован: Вт авг 12, 2008 16:46

IP адрес в БД

Сообщение mesmit »

Подскажите, пожалуйста, как узнать IP (не VPN) привязанный к пользователю. Все IP адреса находятся в таблице ip_groups. Не могу понять, где находится свзяка юзеров к этой таблице.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Для этого нужно выбрать ip, отыскать к какой из сервисных связок он прицеплен, и к какому пользователю та связка прицеплена.

Andy.Fn
Сообщения: 40
Зарегистрирован: Ср июн 18, 2008 10:02

Сообщение Andy.Fn »

SELECT sl.user_id, u.login, i.ip, i.mask FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u WHERE i.is_deleted='0' AND isl.is_deleted='0' AND sl.is_deleted='0' AND i.ip_group_id=isl.ip_group_id AND isl.id=sl.id AND sl.user_id=u.id;

вот..8)

mesmit
Сообщения: 6
Зарегистрирован: Вт авг 12, 2008 16:46

Сообщение mesmit »

Спасибо. То что надо.

Blackmore
Сообщения: 365
Зарегистрирован: Вс фев 06, 2005 09:24
Откуда: подмосковье

Сообщение Blackmore »

SELECT sl.user_id, u.login, INET_NTOA(ip & 4294967295) as ip, i.mask FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u WHERE i.is_deleted='0' AND isl.is_deleted='0' AND sl.is_deleted='0' AND i.ip_group_id=isl.ip_group_id AND isl.id=sl.id AND sl.user_id=u.id;

так читабельнее наверное будет

mesmit
Сообщения: 6
Зарегистрирован: Вт авг 12, 2008 16:46

Сообщение mesmit »

У меня нет функции INET_NTOA. Я использую int_to_ip.

SELECT sl.user_id, u.login, int_to_ip(ip & 4294967295) as ip, i.mask FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u WHERE i.is_deleted='0' AND isl.is_deleted='0' AND sl.is_deleted='0' AND i.ip_group_id=isl.ip_group_id AND isl.id=sl.id AND sl.user_id=u.id;

-- Function: int_to_ip(bigint)
CREATE OR REPLACE FUNCTION int_to_ip(bigint)
RETURNS text AS
$BODY$
select ($1&(255::int4<<24)>>24)::text || '.' ||
($1&(255::int4<<16)>>16)::text || '.' ||
($1&(255::int4<<8)>>8)::text || '.' ||
($1&255)::text
$BODY$
LANGUAGE 'sql' IMMUTABLE;
ALTER FUNCTION int_to_ip(bigint) OWNER TO postgres;

Blackmore
Сообщения: 365
Зарегистрирован: Вс фев 06, 2005 09:24
Откуда: подмосковье

Сообщение Blackmore »

ааа ... ну в постгрисе свои тараканы :)

lancelot
Сообщения: 248
Зарегистрирован: Вс янв 23, 2005 16:28

Сообщение lancelot »

Blackmore писал(а):SELECT sl.user_id, u.login, INET_NTOA(ip & 4294967295) as ip, i.mask FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u WHERE i.is_deleted='0' AND isl.is_deleted='0' AND sl.is_deleted='0' AND i.ip_group_id=isl.ip_group_id AND isl.id=sl.id AND sl.user_id=u.id;

так читабельнее наверное будет
ваш запрос выводит всех у кого прикручены услуги и IP адреса
а как сдеалать что бы в этом списке ОТСУТСТВАЛИ акаунты с Системной, или админской блокировкой?

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

Джойнить с таблицей blocks_info с выборкой по block_type

lancelot
Сообщения: 248
Зарегистрирован: Вс янв 23, 2005 16:28

Сообщение lancelot »

SOLDIER писал(а):Джойнить с таблицей blocks_info с выборкой по block_type
а приминительно к этому примеру...
SELECT sl.user_id, u.login, INET_NTOA(ip & 4294967295) as ip, i.mask FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u WHERE i.is_deleted='0' AND isl.is_deleted='0' AND sl.is_deleted='0' AND i.ip_group_id=isl.ip_group_id AND isl.id=sl.id AND sl.user_id=u.id;

может покажите?

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

Да пожалуйста. По образу и подобию. Выбираем пользователей с IP, у которых не стоит админская блокировка (block_type = 2), системная block_type=1 (Just FYI). Кстати - тут в запросе ещё и маска кривая - -1. Можно и её подправить - но лень. :)

Код: Выделить всё

SELECT sl.user_id, u.login, INET_NTOA&#40; ip &4294967295 &#41; AS ip, i.mask
FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u, blocks_info b 
WHERE i.is_deleted = '0'
AND isl.is_deleted = '0'
AND sl.is_deleted = '0'
AND i.ip_group_id = isl.ip_group_id
AND isl.id = sl.id
AND sl.user_id = u.id
AND u.basic_account =  b.account_id
AND b.is_deleted = '0'
AND b.block_type != '2'

lancelot
Сообщения: 248
Зарегистрирован: Вс янв 23, 2005 16:28

Сообщение lancelot »

SOLDIER писал(а):Да пожалуйста. По образу и подобию. Выбираем пользователей с IP, у которых не стоит админская блокировка (block_type = 2), системная block_type=1 (Just FYI). Кстати - тут в запросе ещё и маска кривая - -1. Можно и её подправить - но лень. :)

Код: Выделить всё

SELECT sl.user_id, u.login, INET_NTOA&#40; ip &4294967295 &#41; AS ip, i.mask
FROM ip_groups i, iptraffic_service_links isl, service_links sl, users u, blocks_info b 
WHERE i.is_deleted = '0'
AND isl.is_deleted = '0'
AND sl.is_deleted = '0'
AND i.ip_group_id = isl.ip_group_id
AND isl.id = sl.id
AND sl.user_id = u.id
AND u.basic_account =  b.account_id
AND b.is_deleted = '0'
AND b.block_type != '2'
не работает запросик

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

У меня работает.

SOLDIER
Сообщения: 649
Зарегистрирован: Чт мар 16, 2006 18:07

Сообщение SOLDIER »

А вообще где-то что-то намутил. Маловато выводит. Разбираться, честно говоря, лень.

Слушатель
Сообщения: 1
Зарегистрирован: Чт окт 16, 2008 15:46
Откуда: UA, Kyiv
Контактная информация:

Сообщение Слушатель »

а не подскажите, как получить список IP адресов пользователей, которые на данный момент могут работать в интернете.

это нужно для генерации отдельного access-list на циску.

так же имеем Catalyst 3560 и при приложении dynamic access-list и включению на интерфейсе ip security каталист умирает от большой загрузки CPU. (примерно 30-40k pps)

у кого-то был такой же печальный опыт?

Ответить