下面是引用月光于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];
}