zoukankan      html  css  js  c++  java
  • php 判断来访国内外IP

    最近做了公司网站的一个需求:按来访人的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,选择哪种就看你的具体需求了。


  • 相关阅读:
    准备 FRM 考试——方法、工具与教训
    930. 和相同的二元子数组 前缀和
    1906. 查询差绝对值的最小值 前缀和
    剑指 Offer 37. 序列化二叉树 二叉树 字符串
    815. 公交路线 BFS
    518. 零钱兑换 II dp 完全背包
    1049. 最后一块石头的重量 II dp
    5779. 装包裹的最小浪费空间 二分
    5778. 使二进制字符串字符交替的最少反转次数 字符串 滑动窗口
    474. 一和零 dp
  • 原文地址:https://www.cnblogs.com/tianxin2001x/p/1626235.html
Copyright © 2011-2022 走看看