Дополнение к статье "Как преобразовать IP в число integer и обратно?"

  • Автор темы abrikos
  • Дата начала

abrikos

Guest
Дополнение к статье "Как преобразовать IP в число integer и обратно?"

Оригинал: http://php.spb.ru/php/ip.html

В РНР4 есть штатные функции long2ip() и ip2long().
Я немного подредактировал описаные в статье функции для их соответсвия штатным (Зачем? Мне потребовалось написать такую функцию для MSSQL)
может кому пригодится:

PHP:
function int2ip($i) {
   if ($i<0) {$i=4294967296+$i);
   $d[0]=(int)($i/256/256/256);
   $d[1]=(int)(($i-$d[0]*256*256*256)/256/256);
   $d[2]=(int)(($i-$d[0]*256*256*256-$d[1]*256*256)/256);
   $d[3]=$i-$d[0]*256*256*256-$d[1]*256*256-$d[2]*256;
   return "$d[0].$d[1].$d[2].$d[3]";
}

function ip2int($ip) {
   $a=explode(".",$ip);
   $tmp= $a[0]*256*256*256+$a[1]*256*256+$a[2]*256+$a[3];
   if ($tmp>4294967295/2) {
      $tmp =$tmp - 4294967296;
      }
return $tmp;
}
 
Сверху