2014-02-19 2 views
5

나는 국가의 IP 범위가 있습니다. 그리고 나는이 범위 내의 사용자 IP 주소를 확인하고 있습니다. 그렇다면 그는 실제로 사이트를 볼 수 있습니다. 내가PHP에서 IP 주소를 사용하여 국가를 찾는 방법은 무엇입니까?

$ip = $_SERVER['REMOTE_ADDR']; 
    if(ip2long($ip) >= $ipstart && ip2long($ip) <= $ipend){ 
     return true; 
    } 

내 질문은 누군가가 다른 나라에서 오는 경우 자신의 노트북 ABC를 생각한다는 것입니다, 다음 코드 사용이 /다른 나라에 노트북 코드가 작동하는 것보다 다음 XYZ를 생각? 같은 노트북에

위의 시나리오에서 ipv4 및 ipv6은 어떻게 가능합니까?

[편집] 우리가 알 수 있도록 IP 주소 $_SERVER['REMOTE_ADDR']이 가져가 기계의 IP 또는 연결 IP 될 것

그는 지금이 나라에서?

감사합니다.

+0

IP 주소 다음 주소 중 하나, 이것은 당신을 도울 것입니다

$client_ip = @$_SERVER['HTTP_CLIENT_IP']; $forward_ip = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote_ip = @$_SERVER['REMOTE_ADDR']; 

희망을 ... 사용할 수 있습니다 –

+0

이것을 사용하십시오 $ countryName = geoip_country_name_by_name ($ _ SERVER [ 'REMOTE_ADDR']); PHP가 국가 이름을 찾는 방법을 구축했습니다 – Haris

+0

[IPLocate.io] (https://www.iplocate.io)는 무료 API를 제공합니다 : https://www.iplocate.io/api/lookup/8.8.8.8 - 예 PHP :'$ result = json_decode (file_get_contents ('https://www.iplocate.io/api/lookup/8.8.8.8')); echo $ result-> country;'- 면책 조항 :이 서비스를 운영합니다. – ttarik

답변

1

PHP에는이 기능이 없습니다. 데이터베이스를 구축하거나 외부 API를 사용하여 데이터베이스를 찾아야합니다.

http://ip-api.com 좋은/무료입니다. 그냥 응답을 구문 분석하십시오.

6

사용이 API http://ipinfo.io

function ip_details($IPaddress) 
    { 
     $json  = file_get_contents("http://ipinfo.io/{$IPaddress}"); 
     $details = json_decode($json); 
     return $details; 
    } 

    $IPaddress = $_SERVER['REMOTE_ADDR']; 

    $details = ip_details("$IPaddress"); 

    //echo $details->city; #Tamilnadu 
    //echo $details->country; 
    //echo $details->org;  
    //echo $details->hostname; 
1

볼이 link

이 기능을 사용하여 IP에서 국가 이름을 찾을 수

,

function getLocationInfoByIp($ip_addr) 
{ 
    $return_data = array('country'=>'', 'city'=>''); 
    $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip_addr)); 
    if($ip_data && $ip_data->geoplugin_countryName != null) 
    { 
     $return_data['country'] = $ip_data->geoplugin_countryCode; 
     $return_data['city'] = $ip_data->geoplugin_city; 
    } 
    return $return_data; 
} 
이 기능에

패스 IP 주소와 국가 정보를 얻을 수 있습니다 ...

IP 국가 테이블에서 조회에 대한 IP 주소를

, 당신은 당신이 제 3 자 API가 필요합니다

+0

답장을 보내 주셔서 감사합니다. 어떤 IP 주소 $ _SERVER [ 'REMOTE_ADDR']가 컴퓨터 IP 또는 연결 IP를 가져 오는 지 궁금합니다. – Sachin

+0

당신은 내가 내 대답에 붙어있는 링크를 볼 수 있습니다 ... –

+0

나는 위의 예제를 사용했고 다른 장치에서 다른 결과를 보았을 때 충격을 받았습니다. 오직'$ _SERVER [ 'REMOTE_ADDR'];'는 결과. 내 바탕 화면을 위해 그것은 나라 **에 **를 제공합니다.보다 폰 SIM을 탑재 한 나의 모바일에서는 ** GB **를 제공하고 Uninor SIM을 사용하면 ** US ** – Sachin

관련 문제