有中英文网站的公司,可能会遇到一个 问题,就是国内与国外用户访问不同的页面。一般方法有两种,一种是使用判断ip是国内还是国外,另外一种就是判断用户浏览器的语言是否中文。
使用Javascript判断用户浏览器是否是中文版本:
//方法一
var type = navigator.appName;
if (type == "Netscape") {
var lang = navigator.language;
} else {
var lang = navigator.userLanguage;
}
var lang = lang.substr(0, 2);
if (lang == "zh") {
location.href = "/404.html";
}
//方法二
window.onload = function () {
WebLocation();
}
function WebLocation () {
//判断浏览器的首选语言
var language = navigator.language;
if (language == "zh-CN") {
location.href = "中文网址";
} else {
location.href = "英文网址";
}
}
php判断当前访问的是在国内还是在国外
/** * 使用淘宝接口 判断ip * @param $ip * @return bool */
public function judgeIpByTaobao($ip) {
$url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
$res = file_get_contents($url);
if (!empty($res)) {
$ipData = json_decode($res,true);
if ($ipData['code']==0 && in_array($ipData['data']['country_id'],['CN','HK','TW'])) {
return true;
}
}
return false;
}
Javascript判断访客是境外还是境内
// 导入ip-country库(需要提前安装)
const ipCountry = require('ip-country');
// 获取访客的IP地址
function getVisitorIp() {
// 这里可以根据不同的服务器配置选择合适的方式获取IP地址
}
// 调用函数获取访客的IP地址
let visitorIp = getVisitorIp();
// 查询访客的国家信息
let countryInfo = ipCountry.get(visitorIp);
if (countryInfo) {
let isDomestic = false;
if (countryInfo === 'CN') {
console.log("访客位于中国");
isDomestic = true;
} else {
console.log(`访客位于${countryInfo}`);
}
console.log(`访客是否为境内? ${isDomestic ? "是" : "否"}`);
} else {
console.log("无法确定访客的国家信息");
}
注意:上述代码依赖了第三方库 ip-country
,因此需要先运行 npm install ip-country
命令来安装该库。WINDOWS下可以去GITHUB上找到直接下载。
本文地址:
转载请注明出处,谢谢!
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。