CREATE OR REPLACE FUNCTION ip_num(ipaddress IN VARCHAR2) RETURN NUMBER AS
ipnum NUMBER := 0;
pos1 NUMBER := 0;
pos2 NUMBER := 0;
BEGIN
FOR i IN 1 .. 3 LOOP
pos2 := to_number(instr(ipaddress, '.', 1, i));
ipnum := ipnum + to_number(substr(ipaddress, pos1 + 1, pos2 - pos1 - 1)) *
power(2, 8 * (4 - i));
pos1 := pos2;
END LOOP;
ipnum := ipnum + to_number(substr(ipaddress, pos1 + 1));
RETURN ipnum;
exception
when others then
return null;
END;
/
05-06 04:02