如何获取ADSL用户的IP地址,头大啊,请高手解决,
我遇到了一个奇怪的问题,每次获取的是一样的,可我后来插入数据库的就不一样了。

解决方案 »

  1.   

    直接进行debug断点调试看看是怎么回事吧
      

  2.   

    ADSL用户的IP地址 是动态的,每次连接都可能不一样
    没有必要保存
      

  3.   

    你自己程序问题,干ADSL啥事儿了
      

  4.   

    程序没问题,固定IP用户的话就很正常,一旦是ADSL用户的话就不行了
      

  5.   

    很简单的一个程序,代码就是这样:
    <?php include_once('Inc/Config.inc'); include_once('Inc/Function.php');$userid=real_ip();//判断参数是否为空if(!isset($_GET['id'])||empty($_GET['id'])){echo '<img src="Inc/images/check_error.gif" width="16" height="16" />  参数为空<br><br>'; exit;}else{//获取ID参数$showid=trim($_GET['id'], '/');echo $userid."<br/>";//执行参数查询,获取记录集$zjh = $db->SelectSQL("SELECT `uid`,`url`,`uip` FROM create_url where uid='".$showid."' order by uid desc LIMIT 1");//记录集里是否有记录if(count($zjh)==0){echo '<img src="Inc/images/check_error.gif" width="16" height="16" />  无记录<br><br>'; exit;}//判断记录集里面允许IP是否为空if(empty($zjh[0]['uip'])||$zjh[0]['uip']==NULL){//如果为空时插入当前用户的IP,也就是第一次访问的访客//echo "插入到数据库的IP地址".$userid."<br/>";$SQL = "UPDATE `create_url` SET `uip` ='".$userid."' WHERE `uid` = '".$showid."'"; $db->ExecuteSQL($SQL,1);echo "插入语句:".$SQL."<br/>";//插入成功后跳转到数据库里面指定的网址NewUrl(0,'',$zjh[0]['url']);}else{//判断数据库记录集中IP值不为空时,再次判断和当前用户IP是否一致if($userid==$zjh[0]['uip']){ //一致的话就执行跳转echo $userid;NewUrl(0,'',$zjh[0]['url']);}else{//不一直就拒绝跳转echo "获取的IP地址".$userid."<br/>";echo "数据库中的IP地址".$zjh[0]['uip'];echo '<img src="Inc/images/check_error.gif" width="16" height="16" />  IP没权限<br><br>';}}//销毁变量unset($zjh,$showid,$SQL,$db);exit;}?>
      

  6.   

    本帖最后由 xuzuning 于 2010-09-28 08:04:26 编辑
      

  7.   


    我要做的功能就是要记录IP,以后此IP的人才能访问这个页面的跳转,我用uniqid()函数来生成主键的,而且这样我就生成了上千上万个链接,也就是XXX/?id=uniqid()函数生成的ID,这样产生了很多这样形式的链接,每个链接只准做一次跳转,也就是为了不产生第二次跳转,我就必须记录一个唯一标识来判断,现在只要是固定IP访客可以实现效果,但是ADSL用户连一次跳转都无法实现,因为获取的IP和插入到数据库的IP不一样,奇怪就奇怪在这里,我就很郁闷,而且只要是ADSL用户一点这个页面直接跳到判断IP的那个环节了,第一次应该先要插入IP再跳转,但是只要ADSL就直接跳到判断IP的那个环节了,而且查看数据库已经插入了,很不民百为什么这样。
      

  8.   

    开始就是这么做的,但是就是不行啊,很奇怪的,ADSL用户,我直接获取IP插入到数据库是对的,可是只要多一个判断的环节就插的IP和获取的IP不一样了.连第一次访问这个连接就无法做跳转。
      

  9.   

    ADSL每次拨号分配的IP地址都是不一样的 所以不能这样操作的 很多同志已经讲了。