Help creating a function
От | Madison Kelly |
---|---|
Тема | Help creating a function |
Дата | |
Msg-id | 46C3702D.1080603@alteeve.com обсуждение исходный текст |
Ответы |
Re: Help creating a function
|
Список | pgsql-general |
Hi all, I'm using ulogd with PostgreSQL which stores IP addresses as 32bit unsigned integers. So when I select some data I get something like: ulogd=> SELECT id, ip_saddr, ip_daddr, raw_pktlen, ip_totlen, tcp_window FROM ulog LIMIT 20; id | ip_saddr | ip_daddr | raw_pktlen | ip_totlen | tcp_window ----+------------+------------+------------+-----------+------------ 1 | 3232235874 | 1074534522 | 46 | 46 | 25825 Where 'ip_saddr' and 'ip_daddr' are 'bigint'. I know I can convert these numbers to dotted-decimal in perl with a small script like: -=-=- #!/usr/bin/perl # This would be the number read from the DB my $num=3232235874; # Now do the math my $temp=$num/256; my $D=256*($temp-int($temp)); $temp=(int($temp))/256; my $C=256*($temp-int($temp)); $temp=(int($temp))/256; my $B=256*($temp-int($temp)); my $A=int($temp); my $ip="$A.$B.$C.$D"; # Print the results print "'num': [$num] -> 'IP': [$ip]\n"; -=-=- What I would like to do is create a function that would do the same thing so I could read out the IP addresses as standard dotted-decimal format. Could anyone help me with this? I am quite the n00b when it comes to functions. :) Thanks all! Madi
В списке pgsql-general по дате отправления: