<<Anybody have a quick and dirty to parse the 4 octets of a typical IP
address>>

How about this...

FUNCTION f_ip_to_number (
   p_ip                                NVARCHAR2
)
   RETURN NUMBER
IS
   v_ip_segment1                 NUMBER
                                     := SUBSTR (p_ip, 1, INSTR (p_ip, '.') -
1);
   v_ip_segment2                 NUMBER
   := SUBSTR (
         p_ip
       , INSTR (p_ip, '.', 1, 1) + 1
       , INSTR (p_ip, '.', 1, 2) - INSTR (p_ip, '.', 1, 1) - 1
      );
   v_ip_segment3                 NUMBER
   := SUBSTR (
         p_ip
       , INSTR (p_ip, '.', 1, 2) + 1
       , INSTR (p_ip, '.', 1, 3) - INSTR (p_ip, '.', 1, 2) - 1
      );
   v_ip_segment4                 NUMBER
                                     := SUBSTR (p_ip, INSTR (p_ip, '.', -1)
+ 1);
BEGIN
   RETURN     (  (  (v_ip_segment1 * 256 + v_ip_segment2)
                  * 256
                 )
               + v_ip_segment3
              )
            * 256
          + v_ip_segment4;
END f_ip_to_number;
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Mirsky, Greg
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to