Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
\ ==============================================================================
\ 
\ 	RubyFORTH -- Copyright (C) 2007-8, Marc Simpson (GPL). 
\ 
\       Convert IPs between integer and octet representation.
\ 
\ ==============================================================================

\ --[ IP Strings ]--------------------------------------------------------------

prim ip-split pop.split(".").each{|octet|push(octet.to_i)}

\ --[ Printing ]----------------------------------------------------------------

prim (.) print pop

\ --[ Shifting ]----------------------------------------------------------------

: byte*    ( n1    -- n2 )  256 * ;
: bytes*   ( n1 n2 -- n3 )  0 do byte* loop ;

: byte/    ( n1    -- n2 )  256 / ;
: bytes/   ( n1 n2 -- n3 )  0 do byte/ loop ;

\ --[ Encoding ]----------------------------------------------------------------

:  as-integer  ( w x y z  -- n )  0 ( sum ) 4 0 do swap i bytes* + loop ;
:  as-integer" ( "ipaddr" -- n )  char " parse ip-split as-integer ;

\ --[ Decoding ]----------------------------------------------------------------

:  as-octet  ( n -- z y x w )  4 0 do dup 255 and swap byte/ loop drop ;
:  .as-octet ( n --         )  as-octet 3 0 do (.) char . emit loop . ;

\ ------------------------------------------------------------------------------