获取客户IP问题。

global_boy 2002-12-02 10:32:42
<?

$rcip=getenv("HTTP_X_FORWARDED_FOR");
$cip=getenv("REMOTE_ADDR");
if (getenv("HTTP_X_FORWARDED_FOR")==""){
echo "您使用了代理,您的真实IP是:";
echo $rcip;
} else {
echo "您的IP是:";
echo $cip;
}



?>


请问这段代码为什么显示不出真实IP?

:)
...全文
28 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
global_boy 2002-12-04
  • 打赏
  • 举报
回复
谢谢anziqi(美洲狮) !
以下是我调试成功的代码

:)



<%
$rcip=getenv("HTTP_X_FORWARDED_FOR");
$cip=getenv("REMOTE_ADDR");
if (getenv("HTTP_X_FORWARDED_FOR")==""){
echo "您的IP是:";
echo $cip;
} else {
echo "您使用了代理,您的真实IP是:";
echo $rcip;
echo "<br/>";
echo "您的代理服务器IP是:";
echo $cip;
}
%>
anziqi 2002-12-04
  • 打赏
  • 举报
回复
代码给你:
<?
$rcip=getenv("HTTP_X_FORWARDED_FOR");
$cip=getenv("REMOTE_ADDR");
if (getenv("HTTP_X_FORWARDED_FOR")==""){
echo "您使用了代理,您的真实IP是:";
echo $cip;
} else {
echo "您的IP是:";
echo $rcip;
}
?>
你是不是这个意思。
anziqi 2002-12-04
  • 打赏
  • 举报
回复
<?
$rcip=getenv("HTTP_X_FORWARDED_FOR");
$cip=getenv("REMOTE_ADDR");
if (getenv("HTTP_X_FORWARDED_FOR")==""){
echo "您使用了代理,您的真实IP是:";
echo $rcip;
} else {
echo "您的IP是:";
echo $cip;
}
?>

呵呵一个逻辑上的错误。
你在if (getenv("HTTP_X_FORWARDED_FOR")=="")这句判断了一下他为空运行下一句是吧。又因为$rcip=getenv("HTTP_X_FORWARDED_FOR"); 等于空了。
所以你显示的时候如果有东东那才见鬼哪。
呵呵自己看看。太粗心了。
phpteam 2002-12-04
  • 打赏
  • 举报
回复
<?
$rcip=getenv("HTTP_X_FORWARDED_FOR");
$cip=getenv("REMOTE_ADDR");
if ($rcip != "") {
echo "您使用了代理,您的真实IP是:";
echo $rcip;
} else {
echo "您的IP是:";
echo $cip;
}
?>
tmj 2002-12-04
  • 打赏
  • 举报
回复
up
knightisso 2002-12-03
  • 打赏
  • 举报
回复
用了代理之后不可能得到真实的ip吗??

—————————————————————————————————
┏━★━━◆━━★━┓
♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
┗━☆━━◇━━━☆┛       ▲自动添加签名......

让你更快,更爽,更方便地上CSDN...
http://www.csdn.net/expert/topic/573/573604.xml
http://www.chinaok.net/csdn/csdn.zip
zeeler 2002-12-03
  • 打赏
  • 举报
回复
那是不可能的
global_boy 2002-12-03
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1145/1145427.xml?temp=.3985407
请诸位看看帖子;


回复人: anziqi(美洲狮) ( ) 信誉:105 2002-11-4 14:48:24 得分:10



<?//补充一下,有时候$REMOTE_ADDR;并不一定是你真是的ip
//用HTTP_X_FORWARDED_FOR更真实一些
if (getenv(HTTP_X_FORWARDED_FOR)) {
$ip = getenv('HTTP_X_FORWARD_FOR');
$host = gethostbyaddr($ip);
} else {
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($ip);
}?>


global_boy 2002-12-03
  • 打赏
  • 举报
回复
若用户使用了proxy,我要得到他的真实ip;

zhenjie 2002-12-03
  • 打赏
  • 举报
回复
使用了Proxy后,你得到的将是代理服务器的IP,真实的IP你是得不到的!
ok?
nenuxjms 2002-12-02
  • 打赏
  • 举报
回复
REMOTE_ADDR,我平时就是用它来收集用户的ip地址啊,怎么有问题么?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧