mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge pull request #3930 from axllent/patch-1
Improved getIP() detection
This commit is contained in:
commit
cf2089bc54
@ -655,15 +655,20 @@ class SS_HTTPRequest implements ArrayAccess {
|
|||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getIP() {
|
public function getIP() {
|
||||||
|
$ip = false;
|
||||||
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
||||||
//check ip from share internet
|
//check ip from share internet
|
||||||
return $_SERVER['HTTP_CLIENT_IP'];
|
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
||||||
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||||
//to check ip is pass from proxy
|
//to check ip is pass from proxy
|
||||||
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||||
} elseif(isset($_SERVER['REMOTE_ADDR'])) {
|
|
||||||
return $_SERVER['REMOTE_ADDR'];
|
|
||||||
}
|
}
|
||||||
|
if ((!$ip || !filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE))
|
||||||
|
&& !empty($_SERVER['REMOTE_ADDR'])) {
|
||||||
|
//if no other forwarding ip is found, invalid, or internal ip address
|
||||||
|
$ip = $_SERVER['REMOTE_ADDR'];
|
||||||
|
}
|
||||||
|
return $ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user