diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util.php | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/util.php b/lib/util.php index c8da8c7dd..9c1af7a0d 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1490,4 +1490,28 @@ function common_shorten_url($long_url) curl_close($curlh); return $short_url; -}
\ No newline at end of file +} + +function common_client_ip() +{ + if (!isset($_SERVER) || !array_key_exists('REQUEST_METHOD', $_SERVER)) { + return null; + } + + if ($_SERVER['HTTP_X_FORWARDED_FOR']) { + if ($_SERVER['HTTP_CLIENT_IP']) { + $proxy = $_SERVER['HTTP_CLIENT_IP']; + } else { + $proxy = $_SERVER['REMOTE_ADDR']; + } + $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; + } else { + if ($_SERVER['HTTP_CLIENT_IP']) { + $ip = $_SERVER['HTTP_CLIENT_IP']; + } else { + $ip = $_SERVER['REMOTE_ADDR']; + } + } + + return array($ip, $proxy); +} |