25 lines
646 B
PHP
25 lines
646 B
PHP
<?php
|
|
|
|
/**
|
|
* Returns the user's IP address.
|
|
* Uses global $user_IP set by Logger plugin if available, else falls back to server variables.
|
|
*
|
|
* @return string
|
|
*/
|
|
function getUserIP() {
|
|
global $user_IP;
|
|
if (!empty($user_IP)) {
|
|
return $user_IP;
|
|
}
|
|
// Fallback to HTTP headers or REMOTE_ADDR
|
|
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
|
return $_SERVER['HTTP_CLIENT_IP'];
|
|
}
|
|
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
// May contain multiple IPs
|
|
$parts = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
|
|
return trim($parts[0]);
|
|
}
|
|
return $_SERVER['REMOTE_ADDR'] ?? '';
|
|
}
|