Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dlaczego to nie dziala
dziki
post
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]
Go to the top of the page
+Quote Post
BzikOS
post
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
Go to the top of the page
+Quote Post
dziki
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 9.05.2004

Ostrzeżenie: (0%)
-----


sorry, pomylka:-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:19