php代码判断地区省市或者ip段

<?php
function getClientIp($type = 0,$adv=false) {
    $type = $type?1:0;
    static $ip = NULL;
    if($ip !== NULL)
        return $ip[$type];
    if($adv){
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            $pos = array_search('unknown',$arr);
            if(false !== $pos)
                unset($arr[$pos]);
            $ip = trim($arr[0]);
        }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
    }elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    $long = sprintf("%u",ip2long($ip));
    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
    return $ip[$type];
}
//获取省
function getIpLocal($ip){
    if($ip==""||$ip==null)
        $ip=getClientIp();
    $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
    $json = json_decode(file_get_contents($url));
    $city=$json->city;    
    $city=str_replace('市','',$city);
    $city = iconv("utf-8","gb2312",$city);//字符串转码
    $province=$json->province;
    $province=str_replace('省','',$province);
    $province = iconv("utf-8","gb2312",$province);//字符串转码
    return $province;
    
}
//获取市
function getIpLocal_city($ip){
    if($ip==""||$ip==null)
        $ip=getClientIp();
    $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
    $json = json_decode(file_get_contents($url));
    $city=$json->city;    
    $city=str_replace('市','',$city);
    $city = iconv("utf-8","gb2312",$city);//字符串转码
    $province=$json->province;
    $province=str_replace('省','',$province);
    $province = iconv("utf-8","gb2312",$province);//字符串转码
    return $city;
    
}


/*$diqu=getIpLocal("14.215.177.37");*/


//获取省
$diqu=getIpLocal(getClientIp());
//获取市
$diqu_city=getIpLocal_city(getClientIp());


//判断省
if($diqu=='北京'||$diqu=='江苏'){
    echo "window.location.href='http://www.baidu.com';";
}
//判断市
if($diqu_city=='北京'){
    echo "window.location.href='http://www.baidu.com';";
}

//判断ip段
if($ip==""||$ip==null){
        $ip=getClientIp();
        }     
$arrayip = array('180.76.14.*','180.97.79.*','60.194.2.*');//ip段  
$ipregexp = implode('|', str_replace( array('*','.'), array('\d+','\.') ,$arrayip) );  

if(preg_match("/^(".$ipregexp.")$/", $ip)==1){
    
    echo "window.location.href='http://www.baidu.com';";
    
}

?>

 由于http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪接口目前用不了 ,下面用淘宝提供的接口

<?php
function getClientIp($type = 0,$adv=false) {
    $type = $type?1:0;
    static $ip = NULL;
    if($ip !== NULL)
        return $ip[$type];
    if($adv){
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            $pos = array_search('unknown',$arr);
            if(false !== $pos)
                unset($arr[$pos]);
            $ip = trim($arr[0]);
        }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
    }elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    $long = sprintf("%u",ip2long($ip));
    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
    return $ip[$type];
}
//获取省
function getIpLocal($ip){    
    if($ip==""||$ip==null)
    $ip=getClientIp();
    $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    $content =file_get_contents($url);
    $arr = json_decode($content,true);
    return $arr["data"]["region"]; 
}
//获取市
function getIpLocal_city($ip){    
    if($ip==""||$ip==null)
    $ip=getClientIp();
    $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    $content =file_get_contents($url);
    $arr = json_decode($content,true);
    return $arr["data"]["city"];   
}
/*$diqu=getIpLocal("14.215.177.37");*/
//获取省
$diqu=getIpLocal(getClientIp());
//获取市
$diqu_city=getIpLocal_city(getClientIp());
//判断省
if($diqu=='北京'|| $diqu=='福建'){    
    echo "window.location.href='http://www.baidu.com';";    
}
//判断市    
if($diqu_city=='北京' || $diqu_city=='上海' || $diqu_city=='广州'|| $diqu_city=='深圳' || $diqu_city=='杭州'){
    echo "window.location.href='http://www.baidu.com';";    
}
//判断ip段
if($ip==""||$ip==null){
    $ip=getClientIp();
}     
$arrayip = array('180.76.14.*','180.97.79.*','60.194.2.*');//ip段  
$ipregexp = implode('|', str_replace( array('*','.'), array('\d+','\.') ,$arrayip) );  
if(preg_match("/^(".$ipregexp.")$/", $ip)==1){    
    echo "window.location.href='http://www.baidu.com';";   
}

?>

 

转载于:https://www.cnblogs.com/linyusong/p/7400520.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值