interger to I P address

Joe Greco jgreco at ns.sol.net
Wed Aug 27 17:29:00 UTC 2008


> Sorry to be continuing this thread, but I find a certain kind of elegance in
> bash which isn't actually there, but helps me sleep at night.
> 
> bash# iptoint(){ oct1=`echo $1|awk -F\. '{print $1}'`; oct2=`echo $1|awk -F\. '{print $2}'`; oct3=`echo $1|awk -F\. '{print $3}'`; oct4=`echo $1|awk -F\. '{print $4}'`; echo $[($oct1<<24)+($oct2<<16 )+($oct3<<8)+$oct4 ];}
> bash# inttoip(){ echo $[$1>>24].$[($1>>16)&255].$[($1>>8)&255].$[$1&255]; }
> 
> bash# inttoip 1089055123
> 64.233.169.147

BASH?  Hahaha.  Real Admins use sh.  More portable(*).

Simple:

v=$1;for n in 4 3 2;do
eval o$n=`expr $v % 256`;v=`expr $v / 256`
done; echo $v.$o2.$o3.$o4

Needlessly complex (just to keep up sh's reputation for complexity):

v4=$1;for n in 4 3 2;do
eval o$n=`eval expr \\$v$n % 256`;eval v`expr $n - 1`=`eval expr \\$v$n / 256`
done; echo $v1.$o2.$o3.$o4

$ ipscript 1089055123
64.233.169.147
$

(*) Not a claim of actual portability of this code.  Just having fun
writing UGLY shell code.

... JG
-- 
Joe Greco - sol.net Network Services - Milwaukee, WI - http://www.sol.net
"We call it the 'one bite at the apple' rule. Give me one chance [and] then I
won't contact you again." - Direct Marketing Ass'n position on e-mail spam(CNN)
With 24 million small businesses in the US alone, that's way too many apples.




More information about the NANOG mailing list