Indirizzo IP reale del client in PHP


La soluzione più comune per ottenere l’indirizzo IP del client connesso al proprio sito è la seguente:

$_SERVER[‘REMOTE_ADDR’]

Il contenuto “REMOTE_ADDR” dell’array “$_SERVER” però non restituisce sempre l’indirizzo IP corretto del client. Qualora il client utilizzi un proxy per la navigazione, l’indirizzo IP restituito sarà quello del proxy e non quello effettivo del client.

Per ovviare a questo problema basta utilizzare una semplice funzione:

function IndirizzoIpReale()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

Lascia una risposta