2013-11-25 56 views

回答

4

這可以幫助你得到國家,那麼你可以相應地重定向。

<?PHP 

    function visitor_country() 
    { 
    $client = @$_SERVER['HTTP_CLIENT_IP']; 
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; 
    $remote = $_SERVER['REMOTE_ADDR']; 
    $result = "Unknown"; 
    if(filter_var($client, FILTER_VALIDATE_IP)) 
    { 
     $ip = $client; 
    } 
    elseif(filter_var($forward, FILTER_VALIDATE_IP)) 
    { 
     $ip = $forward; 
    } 
    else 
    { 
     $ip = $remote; 
    } 

    $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip)); 

    if($ip_data && $ip_data->geoplugin_countryName != null) 
    { 
     $result = $ip_data->geoplugin_countryName; 
    } 

    return $result; 
} 

echo visitor_country(); // Output Coutry name [Ex: United States] 

?> 

或使用Javascript。

<html> 
<head> 
    <script language="JavaScript" src="http://www.geoplugin.net/javascript.gp" type="text/javascript"></script> 
</head> 
<body> 
    <script language="Javascript"> 
document.write("Welcome to our visitors from "+geoplugin_city()+", "+geoplugin_countryName()); 
// window.location = "http://www.yoururl.com"; /* you can forward user to url using this line of code according to your conditions 
    </script> 
</body> 
</html> 
0

您可以使用PECL的geoip_country_by_name()與用戶的IP地址,以獲得他們的國家:

<?php 


    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
     $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 

    $country = geoip_country_name_by_name($ip); 
    if ($country) { 
     echo 'This host is located in: ' . $country; 
     //header("Location: " . $somelocation); 
    } 
    ?>