CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

如何获取IP地址

楼主kennysu(华)2006-11-10 14:11:15 在 Web 开发 / PHP 提问

我想在一个PHP页面里判断是从哪个服务器传过来的,我要拿到服务器的IP地址!不是用户的地址!  
  例如:  
  在a.com里有一个链接到b.com的b.PHP,  
  当b.php执行时通过IP地址(a.com的IP地址)判断是否从a.com传过来的  
  由于http文件名中的域名判断是可以修改的,所以不能用$_SERVER['HTTP_REFERER']  
  请问怎么解决!  
  问题点数:100、回复次数:22Top

1 楼marse(阿彪)回复于 2006-11-10 14:17:50 得分 0

REMOTE_ADDRTop

2 楼PleaseDoTellMeWhy(Allah bless you!)回复于 2006-11-10 14:21:04 得分 0

什么意思,PHP主只要在你的服务器中执行的话,  
  别的即使是所谓的服务器请求你的PHP页面那它也是相对与你的服务器来说都是客户端啊!  
  你的意思是PHP文件还能同时从多个服务器上执行?你执行一部分我执行一部分?  
  $_SERVER["REMOTE_ADDR"]   就能完全满足你!Top

3 楼yueliangdao0608((深圳PHPER.MSN:yueliangdao0608@gmail.com)回复于 2006-11-10 14:21:04 得分 0

$_SERVER['REMOTE_ADDR']Top

4 楼marse(阿彪)回复于 2006-11-10 14:35:49 得分 0

仔细看了一下,我们可能误解LZ的意思了。  
   
  估计只能在a.com中的叶面取得$_SERVER["SERVER_ADDR"]传到b.com中,但是这样估计不是LZ想要得。  
  所以最好还是用$_SERVER['HTTP_REFERER']判断,但是,域名可变就没办法了。  
  反正php.ini里面是拿不到前一叶面的IP。Top

5 楼iasky(iasky)回复于 2006-11-10 14:36:57 得分 0

//   #######################   获取客户端IP   #######################  
  function   getip()   {  
  if   (isset($_SERVER))   {  
  if   (isset($_SERVER[HTTP_X_FORWARDED_FOR]))   {  
  $realip   =   $_SERVER[HTTP_X_FORWARDED_FOR];  
  }   elseif   (isset($_SERVER[HTTP_CLIENT_IP]))   {  
  $realip   =   $_SERVER[HTTP_CLIENT_IP];  
  }   else   {  
  $realip   =   $_SERVER[REMOTE_ADDR];  
  }  
  }   else   {  
  if   (getenv("HTTP_X_FORWARDED_FOR"))   {  
  $realip   =   getenv(   "HTTP_X_FORWARDED_FOR");  
  }   elseif   (getenv("HTTP_CLIENT_IP"))   {  
  $realip   =   getenv("HTTP_CLIENT_IP");  
  }   else   {  
  $realip   =   getenv("REMOTE_ADDR");  
  }  
  }  
  return   $realip;  
  }Top

6 楼web_php(C#C++_PHPMYSQL_ASP)回复于 2006-11-10 14:52:31 得分 0

$_SERVER["REMOTE_ADDR"];Top

7 楼kennysu(华)回复于 2006-11-10 15:01:16 得分 0

“REMOTE_ADDR”  
  正在浏览当前页面用户的   IP   地址。    
  Top

8 楼kennysu(华)回复于 2006-11-10 15:02:25 得分 0

我要的是a.com的服务器的地址,不是访问用户的地址Top

9 楼baxiqiuxing()回复于 2006-11-10 16:48:01 得分 0

<?php  
      $hosts   =   gethostbynamel('www.example.com');  
      print_r($hosts);  
  ?>  
  www.example.com改为a.comTop

10 楼marse(阿彪)回复于 2006-11-10 16:58:23 得分 0

preg_match("/^(http:\/\/)?([^\/]+)/i",$_SERVER['HTTP_REFERER'],   $matches);  
  $host   =   $matches[2];  
  $ip   =   gethostbynamel($host);  
  echo   $ip;Top

11 楼marse(阿彪)回复于 2006-11-10 17:10:32 得分 0

preg_match("/^(http:\/\/)?([^\/]+)/i",$_SERVER['HTTP_REFERER'],   $matches);  
  $host   =   $matches[2];  
  $ip   =   gethostbynamel($host);  
  echo   $ip[0];Top

12 楼zhys9(OoP.plorer)回复于 2006-11-10 17:31:17 得分 0

楼上正解!Top

13 楼ad0001()回复于 2006-11-10 18:38:06 得分 0

http://www.carva.net/  
  楼上正解!Top

14 楼cho__cho(业精于勤,慌于嘻!行成于思,毁于随!)回复于 2006-11-10 19:23:38 得分 0

 
  OK  
   
  Top

15 楼macleo(塔塔)回复于 2006-11-11 11:48:59 得分 0

iasky(C#_ASP_PHP)   (   )   信誉:99         Blog     2006-11-10   14:36:58     得分:   0      
     
     
         
  //   #######################   获取客户端IP   #######################  
  function   getip()   {  
  if   (isset($_SERVER))   {  
  if   (isset($_SERVER[HTTP_X_FORWARDED_FOR]))   {  
  $realip   =   $_SERVER[HTTP_X_FORWARDED_FOR];  
  }   elseif   (isset($_SERVER[HTTP_CLIENT_IP]))   {  
  $realip   =   $_SERVER[HTTP_CLIENT_IP];  
  }   else   {  
  $realip   =   $_SERVER[REMOTE_ADDR];  
  }  
  }   else   {  
  if   (getenv("HTTP_X_FORWARDED_FOR"))   {  
  $realip   =   getenv(   "HTTP_X_FORWARDED_FOR");  
  }   elseif   (getenv("HTTP_CLIENT_IP"))   {  
  $realip   =   getenv("HTTP_CLIENT_IP");  
  }   else   {  
  $realip   =   getenv("REMOTE_ADDR");  
  }  
  }  
  return   $realip;  
  }  
   
       
     
  -----------------------------  
  支持这段代码!^_^Top

16 楼zhangxialiang(Shining)回复于 2007-04-12 11:17:03 得分 0

::   可以试试下面的例子:  
  <?php  
  $hostname   =   gethostbyaddr($_SERVER['REMOTE_ADDR']);  
       
  echo   $hostname;  
  ?>Top

17 楼poiu_poiu()回复于 2007-04-12 11:48:48 得分 0

markTop

18 楼mfzhao(往来之间,光明无限!)回复于 2007-04-12 12:40:01 得分 0

<?php  
      $hosts   =   gethostbynamel('www.example.com');  
      print_r($hosts);  
  ?>Top

19 楼fredyj(醉爱酸奶)回复于 2007-04-12 12:56:38 得分 0

简单的数字签名  
   
  http://www.williamlong.info/archives/823.html  
   
  =================  
   
  A   私钥加密字串  
   
  传递  
   
  B   接受   公钥解密字串   验证签名合法性Top

20 楼cnvit(渊)回复于 2007-04-12 14:01:32 得分 0

晕  
  1、客户机1-》服务器1,获取客户端1IP,$_SERVER['REMOTE_ADDR'];  
  2、服务器1-》服务器2,获取服务器1IP,$_SERVER['SERVER_ADDR'];Top

21 楼tj7181(恺撒)回复于 2007-04-14 09:05:48 得分 0

$_SERVER["LOCAL_ADDR"]  
  运行服务器的IP地址Top

22 楼tj7181(恺撒)回复于 2007-04-14 09:09:25 得分 0

写错了应该是   $_SERVER['LOCAL_ADDR']Top

相关问题

关键词

得分解答快速导航

  • 帖主:kennysu

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo