<?php
   function normalizeIP( $ip ) {
      $ip = inet_pton( $ip );
      if( strlen( $ip ) < 5 ) {
         $ip = chr( 255 ).chr( 255 ).str_pad( $ip, 4, chr( 0 ), STR_PAD_LEFT );
      }
      $ip = str_split( str_pad( $ip, 16, chr( 0 ), STR_PAD_LEFT ) );
      $out = '';
      for( $i = 0; $i < 16; ) {
         if( $i && $i % 2 == 0 ) $out .= ':';
         $out .= str_pad( dechex( ord( $ip[$i++] ) ), 2, '0', STR_PAD_LEFT );
      }
      return $out;
   }
   
   echo normalizeIP( '192.168.0.1' )."\n";
   echo normalizeIP( '208.67.222.222' )."\n";
   echo normalizeIP( 'dd::caa8:0002' )."\n";
   echo normalizeIP( '::ffff:192.168.0.1' )."\n";
?>
