IP адрес в БД
IP адрес в БД
Подскажите, пожалуйста, как узнать IP (не VPN) привязанный к пользователю. Все IP адреса находятся в таблице ip_groups. Не могу понять, где находится свзяка юзеров к этой таблице.
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;
так читабельнее наверное будет
так читабельнее наверное будет
У меня нет функции 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;
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;
ваш запрос выводит всех у кого прикручены услуги и IP адреса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;
так читабельнее наверное будет
а как сдеалать что бы в этом списке ОТСУТСТВАЛИ акаунты с Системной, или админской блокировкой?
а приминительно к этому примеру...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;
может покажите?
Да пожалуйста. По образу и подобию. Выбираем пользователей с IP, у которых не стоит админская блокировка (block_type = 2), системная block_type=1 (Just FYI). Кстати - тут в запросе ещё и маска кривая - -1. Можно и её подправить - но лень.

Код: Выделить всё
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, 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 писал(а):Да пожалуйста. По образу и подобию. Выбираем пользователей с IP, у которых не стоит админская блокировка (block_type = 2), системная block_type=1 (Just FYI). Кстати - тут в запросе ещё и маска кривая - -1. Можно и её подправить - но лень.![]()
Код: Выделить всё
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, 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'
-
- Сообщения: 1
- Зарегистрирован: Чт окт 16, 2008 15:46
- Откуда: UA, Kyiv
- Контактная информация:
а не подскажите, как получить список IP адресов пользователей, которые на данный момент могут работать в интернете.
это нужно для генерации отдельного access-list на циску.
так же имеем Catalyst 3560 и при приложении dynamic access-list и включению на интерфейсе ip security каталист умирает от большой загрузки CPU. (примерно 30-40k pps)
у кого-то был такой же печальный опыт?
это нужно для генерации отдельного access-list на циску.
так же имеем Catalyst 3560 и при приложении dynamic access-list и включению на интерфейсе ip security каталист умирает от большой загрузки CPU. (примерно 30-40k pps)
у кого-то был такой же печальный опыт?