public static function getIpX(): ?string {
[$ip] = self::getIp();
return $ip;
}
public static function getIp(): array {
$ip0 = $ip = $_SERVER['REMOTE_ADDR'] ?? null;
if (in_array($ip, [
'10.29.185.7', '127.0.0.1', '172.17.0.1', '172.31.242.237', # 可信IP列表
])) {
$ip1 = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? null;
if ($ip1) {
$ip0 = $ip1;
$ip = explode(',', $ip1)[0];
}
}
if (!$ip) {
$ip = $_SERVER['REMOTE_ADDR'] ?? null;
}
return [$ip, $ip0];
}
PHP安全的获取ip
发表评论