[PHP] User IP trotz Proxy

Von Huskynarr

Platzhalterbild für [PHP] User IP trotz Proxy

Um das gleich mal klar zu stellen, wir reden von Proxy, keiner VPN, denn diese bekommt man mit PHP so nicht heraus.

Viele Proxy's sind schlecht konfiguriert oder geben die originale IP trotzdem mit.

PHP bekommt eine IP ganze 3x mitgeteilt. Wusste ich selbst nicht.
Das sind diese 3 Variablen:$_SERVER['HTTP_CLIENT_IP'];, $_SERVER['HTTP_X_FORWARDED_FOR']; und $_SERVER['REMOTE_ADDR'];

Es gibt eine tolle Funktion dafür.

[php]
<?php
function getUserIP()
{
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];

if(filter_var($client, FILTER_VALIDATE_IP)){
$ip = $client;
}elseif(filter_var($forward, FILTER_VALIDATE_IP)){
$ip = $forward;
}else{
$ip = $remote;
}
return $ip;
}

$user_ip = getUserIP();
echo $user_ip; // Output IP address
?>
[/php]

Die Funktion ist sehr geeignet um bei IP Sperren entgegen zu wirken.

Weitere Beiträge