最近做了公司网站的一个需求:按来访人的IP来判断他是进中文网站还是英文网站。

我大概构思了一下,有两个方案:

1. Javascript判断来访者的浏览器语言,如果是中文系统,自然使用者都是中国人,跳中文网站;

如果是非中文系统,默认使用者非中国人,跳英文网站。

优点:判断反映速度快。

缺点:不准确,有可能中国用户喜欢用英文版系统,或者外国人使用中文系统的情况。

代码

<script type="text/javascript" language="javascript">
  var Browser_Agent=navigator.userAgent;
    //浏览器为ie的情况
    if(Browser_Agent.indexOf("MSIE")!=-1){
        var a=navigator.browserLanguage;
        if(a !="zh-cn"){
            location.href="英文网站";
        }
    }
    //浏览器非ie的情况
    else{
        var b=navigator.language;
        if(b!="zh-CN"){
            location.href="英文网站";
        }
    }

</script>

2.使用IP库来进行来访IP的判断

优点:判断准确。

缺点:响应速度没Javascript快。

需要引用一个PHP的IP库:/Files/tianxin2001x/ip.zip

我在网站头部引用jquery进行判断

代码

<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
        function initurl() {
            $.ajax({
                type:"GET",
                url:"checkip.php",
                dataType:"html",
                data:"&time="+new Date(),
                cache: false,
                async: false,
                beforeSend:function(XMLHttpRequest) {

},
                success:function(msg) {
                    //如果返回值为1表示访问者为中国地区的ip
                    if(msg == 1){
                       //alert('I am China ip');        
                    }
                    else {
                       //alert('I am not China ip');
                       location.href="英文网站"; 
                       
                    }
                },
                complete:function(XMLHttpRequest,textStatus) {

},
                error:function() {

}
            });
        }
   
</script>

<body  onload="initurl()">
   ...
</body>

checkip.php页面的代码:

$userip=$_SERVER['REMOTE_ADDR'];
//引用ip库的文件 把ip.zip里的全部文件放在lib目录下
include_once('/lib/iplimit.class.php');
$iplimit = new iplimit;

if($iplimit->setup($userip))
{
    echo 1;
}
else
{
    echo 2;
}

两种方法都可以完美实现判断来访IP,选择哪种就看你的具体需求了。

转载于:https://www.cnblogs.com/tianxin2001x/archive/2009/12/17/1626235.html

php 判断来访国内外IP相关推荐

  1. 弘辽科技:淘宝能查出来访客ip地址吗?访客ip地址怎么查?

    每个人在上网的时候使用的设备都会有一个IP地址,那么有一些朋友经常在淘宝平台上下单购物,所以现在心里很好奇的是淘宝能查出来访客IP地址吗?自己的信息会被泄露吗? 可以. 淘宝卖家是可以看到买家的地址的 ...

  2. 国内外ip地址黑名单查询

    国内外ip地址黑名单查询 国内:[url]http://www.anti-spam.org.cn/Rbl/Query/Result[/url] 国外:[url]http://www.spamhaus. ...

  3. C#正则表达式判断是否为IP地址

           public static bool IsIP(string ip)         {             //判断是否为IP             return Regex.I ...

  4. 一个路由器两个网段互通_如何判断两个IP地址是否在同一个网段?什么是子网掩码?...

    前几天咱们了解:三种方法告诉你项目超过255个摄像机怎么设置IP?什么是公网ip?什么又是内网ip?为什么ip地址通常以192.168开头? 也学习了:二.三层交换机与路由器的区别! 但是有好多人对I ...

  5. 判断输入的IP地址是否合法

    判断输入的IP地址是否合法,ip地址的值在0~255之间,先把输入的IP的地址转换为一个字符串. #define LEN (sizeof(xx)/sizeof(xx[0])) const char * ...

  6. 如何判断两个IP地址是不是处于同一网段?

    个人理解,欢迎指正. 一.要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果-->网络号,如果网络号相同, 就在同一子网,否则,不在同一子网. 例:假定选 ...

  7. 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...

    一.什么是子网掩码? 在了解ip地址的网段之前,我们先来了解子网掩码,很多对网络了解不深的朋友都对子网掩码有些迷惑, 不了解它是用来干什么的? 子网掩码不能单独存在,它必须结合IP地址一起使用.子网掩 ...

  8. qprocess start怎么判断是否结束_怎么样判断两个IP地址是否在同一个网段

    怎么样判断两个IP地址是否在同一个网段 方法 通过自身的IP与自身掩码算出网络地址X 通过目的IP与自身掩码算出目的地的网络地址Y 如果这两个网络一样(X=Y),则表示目的地与自身在一个网络内 如果两 ...

  9. shell脚本--判断输入的ip是否正确

    #!/bin/bash #It's written by caibingsen #!/bin/bash #It's written by caibingsen #date:2016-03-15 #wh ...

  10. 判断两个IP大小关系及是否在同一个网段中

    功能点 判断某个IP地址是否合法 判断两个IP地址是否在同一个网段中 判断两个IP地址的大小关系 知识准备 IP协议 子网掩码 Java 正则表达式 基本原理 IP地址范围 0.0.0.0-255.2 ...

最新文章

  1. appium java类库下载,appium 简明教程 (4)——appium client 的安装
  2. 用python描述车_使用Python探索二手车市场(含代码)
  3. [转]《我眼中的技术高手》——邯郸学步、创作与创新
  4. spring web参数传递
  5. 【算法】差分约束系统
  6. oracle0数据库论文总结,大学oracle数据库总结(考试必备)
  7. 研究综述 | 多关系知识图谱表示学习综述
  8. QT5之修改程序图标
  9. gtid mysql failover_说GTID - Failover and Scaleout
  10. 重磅 | 数据挖掘之父韩家炜:文本语料库的数据挖掘(附视频+PPT下载)
  11. 应广单片机长按开关机_单键实现单片机开关机
  12. 20种银河科幻风格ps字体样式
  13. 小武与YOLOv3----优图代码
  14. 一款校园社区APP,功能策划详解
  15. 文本框插入表情和图片
  16. 为什么人人都爱康师傅
  17. Java用for循环嵌套*输出一个长方形
  18. 苹果cms简洁精美影视模板整站源码
  19. 如何使用EndNote导出参考文献
  20. EOS - 常用命令(获取余额、创建账户、发送EOS Token)

热门文章

  1. centos7 更换为aliyun的yum源
  2. BZOJ 3831 POI2014 Litter Bird
  3. XmlAttribute与实体的转换和匹配方案(附源码)
  4. 转载:PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor区别
  5. 《WinForm开发系列之控件篇》Item16 ErrorProvider
  6. 删除百度贴吧上的内容
  7. onethink中的用户登录session签名
  8. python基础知识第一节
  9. CSS让图片垂直居中的几种技巧
  10. 范凯:对移动社交型app的一点思考