Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dlaczego to nie dziala
Forum PHP.pl > Forum > Gotowe rozwiązania
dziki
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]
BzikOS
A jaki związek ma ten skrypt z inżynierią programowania (bo tego dotyczy forym php Pro)?

php Pro => Skrypty
dziki
sorry, pomylka:-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.