phpbar.de logo

Mailinglisten-Archive

[php] solved - Re: [php] IP als 32 Bit-Integer

[php] solved - Re: [php] IP als 32 Bit-Integer

Thomas 'Balu' Walter tw_(at)_itreff.de
Thu, 23 Mar 2000 12:44:44 +0100


Hab mal fix was zusammengehackt - besonders die 2. Funktion :)
Sollte die noch auf einen Rest bei $DEC ueberpruefen und ggf. -1
zurueckliefern?

     Balu

----- 8< -----
<?php

// This function returns the 32bit-decimal-value for a given IP-address
// Thanx to Michael Knetsch for his tip
function IPtoDEC($IP){
        $IPsplit=explode(".", $IP);
        if (sizeof($IPsplit)!=4) return -1;

        $result=0;
        for ($i=0; $i<4; $i++){
                if ($IPsplit[$i]<0 || $IPsplit[$i]>255) return -1;
                $result+=$IPsplit[$i]*pow(256, 3-$i);
        }
        return $result;
}

// This function returns the IP-address for a given 32bit-decimal-value
// (working quick-hack ;) If you know a better solution, mail me
function DECtoIP($DEC){
        $result="";
        for ($i=0; $i<4; $i++){
                $power=pow(256, 3-$i);
                $part=floor($DEC/ $power);
                $DEC=$DEC - $part * $power;
                $result=$result.".".$part;
        }
        return substr($result, 1);
}

// Example:
$IP="212.172.185.1";
echo "IP: ".$IP."<br>";
$DEC=IPtoDEC($IP);
echo "DEC: ".$DEC."<br>";
$IP=DECtoIP($DEC);
echo "IP: ".$IP."<br>";
?>


php::bar PHP Wiki   -   Listenarchive