![](/img/trans.png)
[英]How to redirect my website to a country specific URL based on user's country inside razor view Umbraco
[英]How to get user's country and forward to URL?
如何获取用户所在的国家/地区并将其转发到基于该国家/地区的网址?
我正在特别关注澳大利亚,新西兰,美国,英国和其他国家。
最好使用PHP,但必要时可以使用Javascript。
这可以帮助您获得国家/地区,然后可以进行相应的重定向。
<?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>
您可以将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);
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.