![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.05.2004 Ostrzeżenie: (0%) ![]() ![]() |
dlaczego nie dziala? ma podawac ip i kraj z jakiego jest user, podaje tylko ip, testowalem nie tylko na lokalnym serwerze, ale tez w sieci z normalnym ip, nei lokalnym i to samo, tylko ip, plik ip-to-country.csv jest w tym samym katalogu co ten plik php
[php:1:753b653c17] <?php function GetClientIP() { $ip=0; if(!empty($_SERVER['HTTP_CLIENT_IP'])) $ip=$_SERVER['HTTP_CLIENT_IP']; if(!empty($_SERVER['HTTP_X_FORWARED_FOR'])) {$ipList=explode(",",$_SERVER['HTTP_X_FORWARED_FOR']); if($ip){ array_unshift($ipList,$ip); $ip=0; } foreach($ipList as $v) if(!eregi("^(192.168|172.16|10|224|240|127|0.", $v)) return $v; } return $ip ? $ip : $_SERVER['REMOTE_ADDR']; } define("IDX_GRANULARITY", 10000000); function searchIndex($ip, $idxFileName="ip-to-country.idx"){ $hFile=@fopen($idxFileName, "r"); if(!$hFile) return False; $ip=(int)($ip/IDX_GRANULARITY); $iRecord=0; $iIndex=0; while($aData=fgetcsv($hFile,100)){ if($ip>=$iIndex && $ip<$aData[0]) return array($aData[1], $iRecord); $iIndex=$aData[0]; $iRecord=$aData[1]; } fclose($hFile); return array(-1, $iRecord); } function getClientCountry($ip="", $dbFileName="ip-to-country.db"){ if(!file_exists($dbFileName))return False; if(!strlen($ip)) $ip=getClientIP(); $ip=sprintf("%u",ip2long($ip)); $indexData=searchIndex($ip); if(!$indexData) return False; $hFile=@fopen($dbFileName,"r"); if(!$hFile) return False; fseek($hFile, $indexData[1]*23); $rStart=0; $rEnd=0; $sCountry=""; while(!feof($hFile) && ($rStart>$ip || $rEnd<$ip)){ if($indexData[0]<> -1 && $indexData[0] < $indexData[1]) return False; $sRecord=fread($hFile, 23); $rStart=(float)substr($sRecord, 0, 10); $rEnd=(float)substr($sRecord, 10, 10); $sCountry=substr($Record, 20,2); $indexData[1]++; } fclose($hFile); return $sCountry; } echo getClientIP(); echo getClientCountry(); ?> [/php:1:753b653c17] |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
A jaki związek ma ten skrypt z inżynierią programowania (bo tego dotyczy forym php Pro)?
php Pro => Skrypty |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.05.2004 Ostrzeżenie: (0%) ![]() ![]() |
sorry, pomylka:-)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:19 |