[PHP] Convertir IP en entier

Posted on 12/01/2010 · Posted in PHP

Voici un petit script PHP qui permet de convertir une adresse IP en entier.

127.0.0.1 donne 2130706433

Cela peut-être intéressant pour les systèmes de géolocalisation par IP.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
echo ipToDecimal ("127.0.0.1"); //Affiche 2130706433

function ipToDecimal ($_pIP)
{
    $aIPDecimale    = explode (".", $_pIP);

    for ($i = 0 ; $i < count ($aIPDecimale) ; $i++)
    {
        $aIPDecimale[$i] = fillZero (decbin ($aIPDecimale[$i]));
    }
   
    $ipDecimal  = fillZero (bindec (implode ($aIPDecimale)), 10);
    return $ipDecimal;
}

function fillZero ($_pBinary, $_pLimit = 8)
{
    while (strlen ($_pBinary) < $_pLimit)
    {
        $_pBinary = "0" . $_pBinary;
    }
    return $_pBinary;
}