php 判断来访IP地址是国内还是国外的

发布时间:2020-12-01编辑:脚本学堂
要求:php 判断来访IP地址,区分出是国内用户,还是国外用户,然后跳转到不同的网站。

要求:php 判断来访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地址,择其一而用之吧。