抓不到來訪者的IP



贊助商連結


alec5106
2007-10-08, 12:14 AM
我的主機是 FC4 + PHP Version 5.0.4

最近宊然抓不到來訪者的IP , 我用的是
$HTTP_ENV_VARS['REMOTE_ADDR'] 來抓, 但得到是空字串. 但原先是正常的. 問題會出在那?

贊助商連結


alec5106
2007-10-08, 01:39 AM
不好意思, 我自己找到答案了
在設定檔中
register_long_arrays = on
即可

阿 土
2007-10-08, 03:25 PM
不好意思, 我自己找到答案了
在設定檔中
register_long_arrays = on
即可

REMOTE_ADDR 不見得抓的是正確的 user ip address
當虛擬 ip 用戶透過分享器或其他方式上網者 , 有可能就會抓錯

分享兩個可抓到 Client 端正確 IP 的 php 小程式
(類似的程序很多 , 不過大同小異)


<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP;
?>



<?php

if($_SERVER["HTTP_X_FORWARDED_FOR"])
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$proxy = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$proxy = $_SERVER["REMOTE_ADDR"];
}

$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

}
else
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$ip = $_SERVER["REMOTE_ADDR"];
}
}

echo "Your IP $ip<BR>\n";
if (isset($proxy))
{
echo "Your proxy IP is $proxy<BR>\n";
}

?>