2015-01-03 15 views
0

hostip.info API과 관련된 문제가 있습니다.PHP GET API 위치

여기 내 PHP 코드 :

$ip = $_SERVER['REMOTE_ADDR']; 
echo $ip; 
    $response = file('http://api.hostip.info/get_html.php?ip='.$ip); 
foreach ($response as $line) { 
    $line = trim($line); 
    if (!empty($line)) { 
    $parts = explode(': ', $line); 
    $array[$parts[0]] = $parts[1]; 
} 
} 

그것은 내 올바른 IP 주소를 반환하지만 내가 $array['City']를 반환 할 때 내가 다른 상태에있어 말한다. 나는 프록시를 사용하지 않고있다. 왜 내가 올바른 IP를 제공하지만 도시는 아닌가?

감사합니다.

+0

MaxMind GeoIP 사용 –

답변

0

귀하의 IP 주소는 귀하의 ISP에 속하며이 주소는 api가 반환 한 주소로 등록되어 있습니다. API가 100 % 정확도로 주어진 IP 주소의 실제 지리적 위치를 결정할 수있는 방법은 없습니다. 예를 들어 저는 현재 캘리포니아에 있지만이 서비스 http://api.hostip.info/은 Verizon에 있기 때문에 "Reston, VA"로 응답하며 Verizon이 IP 주소를 등록한 곳입니다. 이

Here is a good article about the subject:

보다 정확한 서비스, 거기에 같은 https://www.maxmind.com/en/geoip2-precision-insights하지만 무료 그 어떤이 있는지 모르겠어요.

편집 :

은 위치 정보 데이터베이스의 정확도는 어떤 데이터베이스 에 따라 달라집니다,이 설명 http://www.iplocation.net/
그 사이트에서 : 그냥 다양한 유사한 서비스의 결과의 좋은 비교 한이 사이트를 발견 너는 사용한다. IP 대 국가 데이터베이스의 경우 일부 공급 업체는 일반적인 Ip2Country 데이터베이스 정확도가 이 95 %와 비슷하지만 98 % 을 99 %의 정확도로 제공한다고 주장합니다. IP 대 지역 (또는 도시)의 경우 인접 도시가 올바른 것으로 간주되면 50 % 에서 75 %까지의 범위를 지정하십시오. 에 IP-to-Region 정보의 공식 출처가 없다는 것을 고려하면 50 % 정확도 은 꽤 좋습니다.

이 질문에 대한 답변입니다.