区分访客国度有什么用?
这里是几个我利用该性能的例子.
1.区分网站性能
这个博客有翻译文章的性能, 这是为了不便海内访客浏览文章, 但对中国人显得非常多余. 所以我经过 IP 判别国度, 对中国大海洋区屏蔽翻译性能.
2.区分展现广告
比方中国大海洋区在侧边栏最下方看到的是拿福能的广告, 而其余地域看到的是 Google 的广告. hostucan 是我的一个广告主, 有英文网站, 也有中文网站, 所以我能够向他提供区分展现效劳, 省得糜费流量.
3.屏蔽布点效劳
海内有很多好的效劳平台, 在网站上布点即可采集数据和分享文章. 但很可怜, 由于某些缘由, 他们在国际展现成果并不好, 岂但没有起到应无效果, 还让页面加载工夫变长. 能够对大陆访客屏蔽这些布点.
在 PHP 经过 IP 区分国度
如何用 PHP 经过 IP 区分国度和地域呢? Maxmind.com 提供一套 GeoIP 的处理计划, 只要要简略几步即可在 PHP 中经过 IP 判别访客的国度.
1. 下载数据库和 PHP 库文件
下载 GeoID.dat.gz, 解压为 GeoIP.dat 文件.
下载 geoip.inc.
2. 经过 PHP 代码获取国度信息
以下是一段示范代码, 演示如何获取国度代号和国度称号.
<?php // 引入 PHP 库文件 include("geoip.inc"); // 关上本地数据库, 数据保留在 GeoIP 文件中. $geoData = geoip_open('GeoIP.dat', GEOIP_STANDARD); // 获取国度 IP $countryCode = geoip_country_code_by_addr($geoData, $_SERVER['REMOTE_ADDR']); // 获取国度称号 $countryName = geoip_country_name_by_addr($geoData, $_SERVER['REMOTE_ADDR']); // 封闭本地数据库 geoip_close($geoData); ?>
在 WordPress 中经过 IP 区分国度
既然 PHP 上应用没成绩, WordPress 一定也是 Okay 的. 看看我是怎样应用的.
1. 搁置数据库文件
将 GeoIP.dat 解压到 WordPress 根目录中. (你能够在这个目录找到 wp-config.php 或许 wp-config-sample.php 文件)
2. 编写调用接口
在主标题录中新建文件夹 include, 将 geoip.inc 搁置在新建文件夹中. 并在该文件夹新建文件 geoip.php 文件内容如下.
<?php include('geoip.inc'); global $countryCode; $geoData = geoip_open('GeoIP.dat', GEOIP_STANDARD); $countryCode = geoip_country_code_by_addr($geoData, $_SERVER['REMOTE_ADDR']); geoip_close($geoData); ?>
这里只取国度代号作为判断根据. 并且国度代号是全局变量, 以防止页面多处判别需求重复拜访 GeoIP.dat 获取信息, 缩小顺序开支.
2. 调用接口, 获取国度代号
3. 关上 header.php 文件, 在文件顶部退出代码如下.
<?php include('include/geoip.php'); ?>
4. 应用国度代号
在主题中调用代码, 例子如下.
<?php global $countryCode; if($countryCode == 'CN') { // 中国大海洋区执行的代码 } else if($countryCode == 'US') { // 美国地域执行的代码 } else { // 中国大陆和美国以当地区执行的代码 } ?>
可能有人会问, 加这么个货色, 功能如何? 会不会要求弱小的效劳器? 我测试过, 失常的效劳器上简直不影响页面加载功能, 能够看看这个博客的速度. 假如不释怀, 本人测一下.
PS:采纳IP查问API接口
国际不少互联网公司例如腾讯、新浪以及淘宝都有IP查问接口,间接调用查问即可。
(1)腾讯IP分享方案
代码如下:
/**依据腾讯IP分享方案的地址获取IP所在地,比拟准确*/function getIPLoc_QQ($ip1){$url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$ip1;$ch = curl_init($url);curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据前往$result = curl_exec($ch);$result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码curl_close($ch);preg_match("@<span>(.*)</span></p>@iU",$result,$ipArray);$loc = $ipArray[1];return $loc;}
(2)新浪IP查问接口
代码如下:
/**依据新浪IP查问接口获取IP所在地*/function getIPLoc_sina($ip1){$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip1;$ch = curl_init($url);//curl_setopt($ch,CURLOPT_ENCODING ,'utf8');curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据前往$location = curl_exec($ch);$location = json_decode($location);curl_close($ch); $loc = "";if($location===FALSE) return "";if (emptyempty($location->desc)) {$loc = $location->province.$location->city.$location->district.$location->isp;}else{$loc = $location->desc;}return $loc;}
(3)应用淘宝IP接口
代码如下:
/** * 依据淘宝IP查问接口获取IP所在地 */function getCity($ip){$url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;$ip=json_decode(file_get_contents($url));if((string)$ip->code=='1'){ return false; } $data = (array)$ip->data;return $data;}
总结
经过 IP 判别访客起源非常精准的, 如今一些外贸网站都是经过这个办法向用户进行展现区分, 比方美国地域的用户默许看到美国能买到的商品和美国物流信息. 但不是**的精确, 比方某人终年翻墙, 那他可能不断看不到外国的信息. 至于能否需求区分解决, 网站次要有所思考.
以上就是安达网络工作室关于《在WordPress中使用PHP脚本来判断访客来自什么国家》的一些看法。更多内容请查看本栏目更多内容!
自己2012年12月20日左右接触wordpress,至今曾经两个月。由于以前丝毫没有网站治理经历及编程才能,因而...
要害字形容:之一 零碎 博客 最好 WordPress 主题 十分 应用 不便 WordPress 是目前最好用的博客零碎之...
WordPress主题教程之修正wordpress回复评论文字办法,首选需求建设个自定义的评论模板,而后经过调用此...
我的优化步骤是: 1.紧缩CSS和JS文件,并修正一局部插件,优化页面的载入过程 普通需求另外加载JS或许CSS的...
随着 WordPress 一版一版的晋级,性能越来越多,代码量也越来越宏大,对 WordPress 速度慢的埋怨声也越来越...
即便你的博客治理后盾的治理员身份被人破解了,普通他也不会同时破解你的网站空间ftp账号,所以他也更改不了...