// Is a proxy in use?
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
// Proxy was used
- $address = $_SERVER['HTTP_X_FORWARDED_FOR'];
+ $address = trim($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
// Yet, another proxy
- $address = $_SERVER['HTTP_CLIENT_IP'];
+ $address = trim($_SERVER['HTTP_CLIENT_IP']);
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
// The regular address when no proxy was used
- $address = getenv('REMOTE_ADDR');
+ $address = trim(getenv('REMOTE_ADDR'));
}
- // This strips out the real address from proxy output
- if (strstr($address, ',')) {
+ if ($address == 'unknown') {
+ // Invalid IP somehow given
+ $address = '0.0.0.0';
+ elseif (strstr($address, ',')) {
+ // This strips out the real address from proxy output
$addressArray = explode(',', $address);
$address = $addressArray[0];
- } // END - if
+ }
// Return the result
return $address;