AI智能
改变未来

PHP获取客户端IP

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP(在Nginx中可以使用proxy_set_header X-Forwarded-For $remote_addr;来解决)。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。

/*** 获取获取客户端IP* @return string* @author bashlog<[email protected]>* @date 2020-09-11 14:19*/function get_client_ip(){foreach ([\'HTTP_CLIENT_IP\', \'HTTP_X_FORWARDED_FOR\', \'REMOTE_ADDR\'] as $server_key){if (array_key_exists($server_key, $_SERVER)) {$ip = trim($_SERVER[$server_key]);//FILTER_FLAG_NO_PRIV_RANGE - 要求值不在 RFC 指定的私有范围 IP 内(比如 192.168.0.1)。//FILTER_FLAG_NO_RES_RANGE - 要求值不在保留的 IP 范围内。该标志接受 IPV4 和 IPV6 值。if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {return $ip;}}}return \'\';}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » PHP获取客户端IP