引用 | 編輯
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 |