2011-12-12 8 views
3

현재 호스트를 통해 GeoIP.dat 파일에 액세스 할 수 있지만 입력 한 모든 IP는 비어 있습니다. 어떤 아이디어가 잘못되었거나 문제를 해결할 수있는 방법이 있습니까? PHP 오류가 있지만 잘못된 것은 없습니다.geopip 레코드는 항상 null입니까?

<?php 

include('geoip.inc'); 
include('geoipcity.inc'); 
include('geoipregionvars.php'); 


$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD); 

$rsGeoData = geoip_record_by_addr($gi, $_SERVER['REMOTE_ADDR']); 

echo("<pre>"); 
print_r($rsGeoData); 
echo("</pre>"); 

geoip_close($gi); 

?> 

결과는 항상 다음과 같습니다 :

geoiprecord Object 
(
[country_code] => 
[country_code3] => 
[country_name] => 
[region] => 
[city] => 
[postal_code] => 
[latitude] => -180 
[longitude] => -180 
[area_code] => 
[dma_code] => 
[metro_code] => 
[continent_code] => -- 
) 
+1

: 다른 데이터베이스 파일을 확인할 수 있습니다. 올바른 IP가 있는지 확인하기 위해 $ _SERVER [ 'REMOTE_ADDR']을 반복 해보십시오. – SuitedSloth

+0

그 생각은 올바른 IP인지 확인했습니다. – Paul

+0

'var_dump ($ _ SERVER [ 'REMOTE_ADDR']);'출력은 무엇입니까? 'geoip_open'과'geoip_record_by_addr'는 어디에 정의되어 있습니까? 'GeoIP.dat'에는 구체적으로 어떤 표준에 의한 형식과 실제 데이터가 포함되어 있습니까? – hakre

답변

2

당신이 GeoIP가 올바른 버전을 사용하고 있는지 확인

여기에 내 현재 스크립트입니다. 이 코드가 있는데 제대로 작동하고 있습니다. 웹 서버 설정 방법, $ _SERVER [ 'REMOTE_ADDR'는] 클라이언트의 IP 주소가 포함되어 있지 않을 수에 따라

include("geoipcity.inc"); 
include("geoipregionvars.php"); 

$gi = geoip_open('geolitecity.dat', GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi, ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') ? '83.238.225.249' : $_SERVER['REMOTE_ADDR']); 
geoip_close($gi); 
+0

분명히 이전 버전이었습니다. 그 덕분에, 고마워! – Paul

관련 문제