设为首页 收藏本站
查看: 545|回复: 0

[经验分享] #舍得Share#php开发笔记-通过IP区分不同国家的用户

[复制链接]

尚未签到

发表于 2017-4-11 10:10:39 | 显示全部楼层 |阅读模式
来自:http://www.lwxshow.com/dev/phpdev/php-development-notes-by-ip-users-distinguish-between-different-countries.html


区分访客国家有什么用?
  区分网站功能
这个博客有翻译文章的功能, 这是为了方便海外访客阅读文章, 但对中国人显得十分多余. 所以我通过 IP 判断国家, 对中国大陆地区屏蔽翻译功能.
  区分展示广告
我在网站侧边栏放有广告, 很多中文广告对海外流量来说毫无意义, 所以我进行区分展示. 中国大陆地区在侧边栏最下方看到的是拿福能的广告, 而其他地区看到的是 Google 的广告. hostucan 是我的一个广告主, 有英文网站, 也有中文网站, 所以我可以向他提供区分展示服务, 免得浪费流量.
  屏蔽布点服务
海外有很多好的服务平台, 在网站上布点即可采集数据和分享文章. 但很不幸, 因为某些原因, 他们在国内展示效果并不好, 不但没有起到应有效果, 还让页面加载时间变长. 可以对大陆访客屏蔽这些布点.

在 PHP 通过 IP 区分国家
  何用 PHP 通过 IP 区分国家和地区呢? Maxmind.com  提供一套 GeoIP 的解决方案, 只需要简单几步即可在 PHP 中通过 IP 判断访客的国家.
  1. 下载数据库和 PHP 库文件


  • 下载 GeoID.dat.gz , 解压为 GeoIP.dat 文件.
  • 下载 geoip.inc php1.11.tar.gz
  • 国内打包高速下载地址:http://kuai.xunlei.com/d/PTQLLLMPISUX
  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);   ?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-363278-1-1.html 上篇帖子: PHP关于检测用户是否登陆,以及设置拦截器(简单实现) 下篇帖子: php利用openoffice把doc转换为PDF, txt or HTML
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表