PHP安全的获取ip
文章介绍了一个用于获取客户端IP地址的PHP函数`getIp()`及其辅助函数`getIpX()`。该函数首先从`$_SERVER['REMOTE_ADDR']`获取IP地址,并检查是否在可信IP列表中;如果是,则尝试从`$_SERVER['HTTP_X_FORWARDED_FOR']`中提取代理服务器传递的真实IP地址。最终返回处理后的主IP地址和原始IP地址。
2025-2-15 19:5:57
Author: www.yanglong.pro(查看原文)
阅读量:5
收藏
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];
}
文章来源: https://www.yanglong.pro/php%e5%ae%89%e5%85%a8%e7%9a%84%e8%8e%b7%e5%8f%96ip/
如有侵权请联系:admin#unsafe.sh
发表回复