php对ip地址的处理

    public function actions()
    {
        $url = "http://ip.taobao.com/service/getIpInfo.php?ip=".self::ip();
        $str = self::sendCurl('http://pv.sohu.com/cityjson');
        echo '<pre>';
        print_r($url);die;
        $str1= explode('{"cip": "',$str);
        $str2=(explode('", "cid":',$str1['1']));
        $last = $str2['0'];
        echo $str;die;

        exit(json_encode(['resCode' => 404, 'resMsg' => '接口错误']));
    }
    public static function sendCurl($url = '', $data = [])
    {
        $ch = curl_init();
        //设置选项,包括URl
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1); //post数据
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //post的变量
        //执行并获取内容
        $info = curl_exec($ch);
        curl_close($ch);

        return $info;
    }

    public static  function ip() {
        if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $ip = getenv('REMOTE_ADDR');
        } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        $res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
        return $res;
    }

 

转载于:https://www.cnblogs.com/ghjbk/p/10063786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值