Chris -- we actually used this as part of a cybersecurity project we did with the Navy back in 2004/2005. We were working with large volumes of network sensor data processed through an event correlation engine. We used DI Studio to administer all of our data management activities and the target data store was SPDS. Our IP addresses came across in IP/Port combinations in the format x.x.x.x:y where x is the IP octet and y is the port. We reported on a number of things including country of origin so the numeric equivalent of the IP was important. Here was the code used for that customer implementation:

data spdsdata.dest_ip_pair_new;
set spdsdata.dest_ip_port_pair_summary_old;
length dip $15; label dip="Destination IP";
length dport $10; label dport="Destination Port";
length dipnum 8; label dipnum="Destination IP Number";
length severity 4.; label severity="Severity";
dip = scan(dip_port,1,":");
dport = scan(dip_port,2,":");
dipnum = 16777216*(input(scan(dip_port,1,".:"),8.)) + 65536*
(input(scan(dip_port,2,".:"),8.)) + 256*(input(scan(dip_port,3,".:"),8.)) +
(input(scan(dip_port,4,".:"),8.));
run;