IP来源位置无法显示

Home Home
引用 | 编辑 detecti41258
2006-01-20 14:05
楼主
推文 x0
【类型】其它
【版本】1.3.6

PHPWind版本:1.3.6


好比说应该显示IP来源
From:日本 Japan | 时间:0000-00-00 00:00
可是却显示空白
From: | 时间:0000-00-00 00:00

好像是无法读取的关系,请问这样要如何解决?

献花 x0
引用 | 编辑 月光
2006-01-20 14:39
1楼
  
下面是引用detecti41258于2006-01-20 14:05发表的 IP来源位置无法显示:
【类型】其它
【版本】1.3.6

PHPWind版本:1.3.6

.......

ip数据库不完整就会这样...去找个完整的 ipdata 吧

献花 x0
引用 | 编辑 detecti41258
2006-01-24 08:42
2楼
  
下面是引用月光于2006-01-20 14:39发表的 :
ip数据库不完整就会这样...去找个完整的 ipdata 吧

不! 我已经检查过了,那个ipdata资料库应该没什么问题,因为其它的IP就可以读取,而且那段IP来源资料也在资料库里面,所以应该会显示。

问题应该不是出在ipdata资料库,是无法读取的问题才对。

献花 x0
引用 | 编辑 月光
2006-01-25 16:41
3楼
  
下面是引用detecti41258于2006-01-24 08:42发表的 :


不! 我已经检查过了,那个ipdata资料库应该没什么问题,因为其它的IP就可以读取,而且那段IP来源资料也在资料库里面,所以应该会显示。

问题应该不是出在ipdata资料库,是无法读取的问题才对。

想起来之前PHPwind好像有一个问题就是只会读取 ipdata/0.txt 的问题 你能把你的
require/postfunc.php
传上来让我看看吗?

献花 x0
引用 | 编辑 detecti41258
2006-01-25 19:28
4楼
  
下面是引用月光于2006-01-25 16:41发表的 :
想起来之前PHPwind好像有一个问题就是只会读取 ipdata/0.txt 的问题 你能把你的
require/postfunc.php
传上来让我看看吗?

我只有列出重点的部份,大概下面的编码就是跟IP来源位置读取有关系了。

复制程式
<?php
!function_exists('readover') && exit('Forbidden');
function cvipfrom($onlineip){
       $detail=explode(".",$onlineip);
       if (file_exists("ipdata/$detail[0].txt"))
              $filename="ipdata/$detail[0].txt";
       else
              $filename="ipdata/0.txt";
       for($i=0; $i<=3; $i++){
              $detail[$i]     = sprintf("%03d", $detail[$i]);
       }
       $onlineip=join(".",$detail);
       $db=fopen($filename,"rb");
       flock($db,LOCK_SH);
       $onlineipdb=fread($db,filesize($filename));
       if($windset=strpos($onlineipdb,"$detail[0].$detail[1].$detail[2]")){
              $ipfrom=ipselect($db,$windset,$onlineip);
       }elseif($windset=strpos($onlineipdb,"$detail[0].$detail[1]")){
              $ipfrom=ipselect($db,$windset,$onlineip);
       }elseif($windset=strpos($onlineipdb,$detail[0])){
              $ipfrom=ipselect($db,$windset,$onlineip);
       }
       fclose($db);
       if(empty($ipfrom)) $ipfrom='未知地址'
       return $ipfrom;
}
function ipselect($db,$offset,$onlineip){
       fseek($db,$offset,SEEK_SET);
       $getcontent=fgets($db,100);
       $iparray=explode("|",$getcontent);
       if ($onlineip>=$iparray[0] && $onlineip<=$iparray[1]) return $iparray[2].$iparray[3];
}


献花 x0
引用 | 编辑 月光
2006-01-25 20:26
5楼
  
改成这样看看吧这个是我当初用 PHPwind 3.0.1 的时候用的因为懒得重建ip数据库
所以我现在也把4.3.0CE 改成这样应该是没问题的!!
复制程式
!function_exists('readover') && exit('Forbidden');
function cvipfrom($onlineip){
       $datadir = 'ipdata/'
       $onlineip_detail = explode('.', $onlineip);
       if(file_exists($datadir.$onlineip_detail[0].'.txt')) {
              $onlineip_fdata = fopen($datadir.$onlineip_detail[0].'.txt', 'r');
       } else {
              if(!($onlineip_fdata = fopen($datadir.Ɔ.txt', 'r'))) {
                     echo 'IP data file error'
              }
       }
       for ($i = 0; $i <= 3; $i++) {
              $onlineip_detail[$i] = sprintf('%03d', $onlineip_detail[$i]);
       }
       $onlineip = join('.', $onlineip_detail);
       do {
              $onlineip_data = fgets($onlineip_fdata, 200);
              $onlineip_data_detail = explode("|", $onlineip_data);
              if($onlineip >= $onlineip_data_detail[0] && $onlineip <= $onlineip_data_detail[1]) {
                     fclose($onlineip_fdata);
                     return $onlineip_data_detail[2].$onlineip_data_detail[3];
              }
       } while(!feof($onlineip_fdata));
       fclose($onlineip_fdata);
       return '末知网路'
}
function ipselect($db,$offset,$onlineip){
       fseek($db,$offset,SEEK_SET);
       $l_d=fgets($db,100);
       $onlineip_a=explode("|",$l_d);
       if ($onlineip>=$onlineip_a[0] && $onlineip<=$onlineip_a[1]) return $onlineip_a[2].$onlineip_a[3];
}
function nset($db){
       $l_d=fgets($db,100);
       $onlineip_a=explode("\t",$l_d);
       return array($l_d,$onlineip_a[2].$onlineip_a[3]);
}


献花 x0
引用 | 编辑 detecti41258
2006-01-25 22:34
6楼
  
IP来源位置已经可以正常读取了,非常的感谢你。

献花 x0
引用 | 编辑 月光
2006-01-26 03:00
7楼
  
下面是引用detecti41258于2006-01-25 22:34发表的 :
IP来源位置已经可以正常读取了,非常的感谢你。

不客气 表情

献花 x0
引用 | 编辑 回忆过去
2016-02-09 03:23
8楼
  
我的也是这样的问题,现在解决了。谢谢

献花 x0