dede首页添加根据IP访问区域跳转对应页面
2016-03-12 19:38
295 查看
根据访问者的IP来判断所在区域,根据区域信息,来跳转相对应的页面(好多分类信息网,团购网都有这样的功能,根据你在的城市,然后跳转相应的页面显示此城市的相关信息)。
先说下思路,首先获取访问者的IP信息,然后根据IP区域信息库进行对比(IP区域信息库网上有现成的,可下载到本地进行对比,也可直接用新浪或者淘宝,腾讯的API,这个自己baidu,注意编码问题,有的站点喜欢用GBK编码,有的喜欢用UTF-8编码,我用的淘宝的API,是UTF-8编码),对比后跳转到相对应的页面即可。
代码:
$ip = getIp();//dede自带的查询IP功能,直接调用
$res1 = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1 = json_decode($res1);
$useraddre = $res1->data->region;
$useraddre = mb_convert_encoding($useraddre, "GBK", "UTF-8");
$dzcity = "上海";
$contra= strstr($useraddre,$dzcity);
if(!empty($contra)){
//上海的,跳转到这里
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://xzhuji.com/");
exit;}
这样写功能是能实现,但是要加在首页上面,也不知道效率如何。现在先这么写了。
我这里要判断的区域就上海的,所以就这么写了。如果还要判断其他地方的,自己再加判断就可以了。
先说下思路,首先获取访问者的IP信息,然后根据IP区域信息库进行对比(IP区域信息库网上有现成的,可下载到本地进行对比,也可直接用新浪或者淘宝,腾讯的API,这个自己baidu,注意编码问题,有的站点喜欢用GBK编码,有的喜欢用UTF-8编码,我用的淘宝的API,是UTF-8编码),对比后跳转到相对应的页面即可。
代码:
$ip = getIp();//dede自带的查询IP功能,直接调用
$res1 = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1 = json_decode($res1);
$useraddre = $res1->data->region;
$useraddre = mb_convert_encoding($useraddre, "GBK", "UTF-8");
$dzcity = "上海";
$contra= strstr($useraddre,$dzcity);
if(!empty($contra)){
//上海的,跳转到这里
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://xzhuji.com/");
exit;}
这样写功能是能实现,但是要加在首页上面,也不知道效率如何。现在先这么写了。
我这里要判断的区域就上海的,所以就这么写了。如果还要判断其他地方的,自己再加判断就可以了。
相关文章推荐
- Qt入门之窗口实现
- 图的基本概念及存储
- android 6.0 SystemUI源码分析(5)-PowerUI介绍
- 跟我一起学Microsoft SQL Server 2012 Internals(1.2)
- 和Eclipse一起走过的日子
- 第二周项目二本月有几天
- 构建之法阅读笔记01
- Infinite Sequence
- 打印图形a
- C++STL之优先队列
- ehcache.xml设置(转)
- json跨域原理及解决方法
- Compound Interest Calculator1.0
- __bridge
- 进程与线程
- event 事件绑定 attachEvent addEventListener封装
- 单元测试
- C++ 购物车代码
- 2016华为机试题:大数相减
- 键盘控制div上下左右移动 (转)