要用 PHP 取得用户的 IP 十分容易,只要用 $_SERVER[‘REMOTE_ADDR’] 变量就可以知道用户的 IP,但如果用户使用了 proxy server 上网的话,$_SERVER[‘REMOTE_ADDR’] 只会得到 proxy 的 IP 地址。
以下方法会使用 $_SERVER[“HTTP_CLIENT_IP”] 及 $_SERVER[“HTTP_X_FORWARDED_FOR”] 解决这个问题:
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php if (!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; }elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; }else{ $ip = $_SERVER["REMOTE_ADDR"]; } echo $ip; ?> |
然而HTTP_X_FORWARDED_FOR可以被恶意分子随意设定数值,导致服务器能够认为你是管理员.