一般做訪客計數器時,
大多都會利用PHP的$SERVER['REMOTE_ADDR']來抓取訪客的IP位址;
可是在書上發現REMOTE_ADDR不能抓取到有經過proxy(代理伺服器)訪客的真實IP,
所以搭配利用$SERVER['HTTP_X_FORWARDED_FOR']
它可以將所有訪客主機經過的代理主機IP記錄下來
便可以抓到有經過proxy訪客的真實IP
大多都會利用PHP的$SERVER['REMOTE_ADDR']來抓取訪客的IP位址;
可是在書上發現REMOTE_ADDR不能抓取到有經過proxy(代理伺服器)訪客的真實IP,
所以搭配利用$SERVER['HTTP_X_FORWARDED_FOR']
它可以將所有訪客主機經過的代理主機IP記錄下來
便可以抓到有經過proxy訪客的真實IP
//先判斷HTTP_X_FORWARDED_FOR是否存在
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
//存在的話將HTTP_X_FORWARDED_FOR拆解取出第一個IP即可
$proxy_ip = split(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $proxy_ip[0];
}else
{
//不存在則使用REMOTE_ADDR來得到訪客IP
$ip = $_SERVER['REMOTE_ADDR'];
}
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
//存在的話將HTTP_X_FORWARDED_FOR拆解取出第一個IP即可
$proxy_ip = split(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $proxy_ip[0];
}else
{
//不存在則使用REMOTE_ADDR來得到訪客IP
$ip = $_SERVER['REMOTE_ADDR'];
}
原文链接:http://pixnet.webber.twgg.org/blog/post/12185952-php%E5%88%A9%E7%94%A8http_x_forwarded_for%E6%8A%93%E5%8F%96%E8%A8%AA%E5%AE%A2ip