引用 | 编辑
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来源位置无法显示: ip数据库不完整就会这样...去找个完整的 ipdata 吧 x0 |
引用 | 编辑
detecti41258
2006-01-24 08:42 |
2楼
▲ ▼ |
下面是引用月光于2006-01-20 14:39发表的 : 不! 我已经检查过了,那个ipdata资料库应该没什么问题,因为其它的IP就可以读取,而且那段IP来源资料也在资料库里面,所以应该会显示。 问题应该不是出在ipdata资料库,是无法读取的问题才对。 x0 |
引用 | 编辑
月光
2006-01-25 16:41 |
3楼
▲ ▼ |
下面是引用detecti41258于2006-01-24 08:42发表的 : 想起来之前PHPwind好像有一个问题就是只会读取 ipdata/0.txt 的问题 你能把你的 require/postfunc.php 传上来让我看看吗? x0 |
引用 | 编辑
detecti41258
2006-01-25 19:28 |
4楼
▲ ▼ |
下面是引用月光于2006-01-25 16:41发表的 : 我只有列出重点的部份,大概下面的编码就是跟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 |