Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Работа с IP в Oracle???  [new]
SEugene
Member

Откуда:
Сообщений: 17
Проблема определения на вхождение IP в сеть на Oracle.
24 ноя 06, 16:27    [3448618]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
Alex from SPb
Member

Откуда:
Сообщений: 448
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?
24 ноя 06, 16:30    [3448661]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8129
Правда? Быть того не может!
Всегда отлично входит и выходит! :-)
24 ноя 06, 16:30    [3448665]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
Elic
Member

Откуда:
Сообщений: 29976
SEugene
Проблема определения на вхождение IP в сеть на Oracle.
STFF Кто знает, как проверить IP?
24 ноя 06, 16:35    [3448696]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
Black Dragon
Member

Откуда: Москва
Сообщений: 383
может имелось ввиду это:
SQL> select sys_context('userenv','IP_ADDRESS') from dual;

SYS_CONTEXT('USERENV','IP_ADDRESS')
---------------------------------------
192.168.5.56
SQL>
Со зверским уважением
24 ноя 06, 16:35    [3448699]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SEugene
Member

Откуда:
Сообщений: 17
Alex from SPb
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?

Нужно определить к какой из N подсетей отноститься определенный IP адрес
24 ноя 06, 16:58    [3448910]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8129
SEugene
Alex from SPb
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?
Нужно определить к какой из N подсетей отноститься определенный IP адрес
А какая структура данных и алгоритм отнесения к подсети?
24 ноя 06, 17:13    [3449077]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
Alex from SPb
Member

Откуда:
Сообщений: 448
алгоритм знаете как по маске и адресу вычислить?
24 ноя 06, 17:15    [3449099]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SEugene
Member

Откуда:
Сообщений: 17
SQL*Plus
SEugene
Alex from SPb
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?
Нужно определить к какой из N подсетей отноститься определенный IP адрес
А какая структура данных и алгоритм отнесения к подсети?

Алгоритм стандартный - наложение маски на IP, например,
SELECT (INET_ATON($host) & INET_ATON($mask)) = INET_ATON($net);
24 ноя 06, 17:25    [3449182]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8129
Alex from SPb
алгоритм знаете как по маске и адресу вычислить?
Нет. Не знаю. Всё знать невозможно... :-(
26 ноя 06, 17:09    [3452394]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8129
SEugene
SQL*Plus
SEugene
Alex from SPb
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?
Нужно определить к какой из N подсетей отноститься определенный IP адрес
А какая структура данных и алгоритм отнесения к подсети?
Алгоритм стандартный - наложение маски на IP, например,
SELECT (INET_ATON($host) & INET_ATON($mask)) = INET_ATON($net);
Спасибо за разъяснение.
Тем, кто как и я не знал что такое INET_ATON рекомендую посмотреть
Краткое описание функции inet_aton(), которая выполняет преобразование Internet dot address в network address

Возможно поможет когда-то написанное для преобразования IP в число:
SELECT TO_NUMBER(TO_CHAR(b1, 'fm0X') 
              || TO_CHAR(b2, 'fm0X') 
              || TO_CHAR(b3, 'fm0X') 
              || TO_CHAR(b4, 'fm0X')
               , 'XXXXXXXX') AS num_from_dotted
     , TO_CHAR(b1, 'fm0X') 
       || TO_CHAR(b2, 'fm0X') 
       || TO_CHAR(b3, 'fm0X') 
       || TO_CHAR(b4, 'fm0X') AS hex_from_dotted
     , b1, b2, b3, b4
FROM (SELECT 
         TO_NUMBER(SUBSTR(ip, 1, INSTR(ip,'.')-1))
            AS b1
       , TO_NUMBER(SUBSTR(ip
                        , INSTR(ip,'.')+1
                        , INSTR(ip,'.',1, 2)- INSTR(ip,'.')-1)) 
            AS b2
       , TO_NUMBER(SUBSTR(ip
                        , INSTR(ip,'.', -1, 2)+1
                        , INSTR(ip,'.', -1) - INSTR(ip,'.', -1, 2) -1)) 
            AS b3
       , TO_NUMBER(SUBSTR(ip, INSTR(ip,'.', -1)+1)) 
            AS b4
      FROM (SELECT '250.168.120.1' AS IP FROM dual)
      )
;

NUM_FROM_DOTTED HEX_FROM_DOT         B1         B2         B3         B4
--------------- ------------ ---------- ---------- ---------- ----------
     4205344769 FAA87801            250        168        120          1
26 ноя 06, 17:59    [3452466]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Работа с IP в Oracle???  [new]
utopiya
Member

Откуда:
Сообщений: 37
SEugene
SQL*Plus
SEugene
Alex from SPb
не совсем понял смысл
с каких адресов можно подключаться, а с каких нет?
Нужно определить к какой из N подсетей отноститься определенный IP адрес
А какая структура данных и алгоритм отнесения к подсети?

Алгоритм стандартный - наложение маски на IP, например,
SELECT (INET_ATON($host) & INET_ATON($mask)) = INET_ATON($net);


у меня как раз проблема наложения маски на IP.. кто-нибудь может поясенить смысл селекта (
заранее благодарю!
21 апр 09, 13:19    [7091679]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
utopiya
Member

Откуда:
Сообщений: 37
немного поясню..
у меня есть таблица со столбцами: SrcIP, DstIP, Packet, Bytes
так вот.. мне нужно у первых двух столбцов во всех адресах (а их в каждом оч много) наложением маски (255.255.255.0) обнулить последний байт (получить из 1.1.1.1 - 1.1.1.0)
21 апр 09, 13:27    [7091754]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
utopiya
немного поясню..
у меня есть таблица со столбцами: SrcIP, DstIP, Packet, Bytes
так вот.. мне нужно у первых двух столбцов во всех адресах (а их в каждом оч много) наложением маски (255.255.255.0) обнулить последний байт (получить из 1.1.1.1 - 1.1.1.0)


ик.. всё ещё никак не обнулите?

substr(SrcIP,1,instr(SrcIP,'.',-1))||0
21 апр 09, 15:34    [7092798]     Ответить | Цитировать Сообщить модератору
 Re: Работа с IP в Oracle???  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
orawish
utopiya
немного поясню..
у меня есть таблица со столбцами: SrcIP, DstIP, Packet, Bytes
так вот.. мне нужно у первых двух столбцов во всех адресах (а их в каждом оч много) наложением маски (255.255.255.0) обнулить последний байт (получить из 1.1.1.1 - 1.1.1.0)


ик.. всё ещё никак не обнулите?

substr(SrcIP,1,instr(SrcIP,'.',-1))||0


А не проще ли проверить просто по диапазону, чем с масками возиться??
21 апр 09, 23:42    [7095119]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить