zoukankan      html  css  js  c++  java
  • curl_get和curl_post,伪造请求头,绕过防盗链下载文件

    //curl-get
        function curl_get($url, $timeout = 10)
        {
            $ch = curl_init();//初始化
            curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //禁止服务器端的验证
            //伪装请求来源,绕过防盗
            curl_setopt($ch,CURLOPT_REFERER,"http://www.ding.com");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//服务器5秒内没有响应,脚本就会断开连接
            $file_contents = curl_exec($ch);//运行curl
            if (curl_errno($ch)) {
                return curl_error($ch);
            }
            curl_close($ch);
            return $file_contents;
        }
        //http://oss.houdunren.com/lesson_video/水印类/1,水印类简介.mp4
        $url = '要下载文件的地址';
        $filename = '要保存的下载文件名称';
        header("Content-Disposition:attachment;filename=".$filename);
        echo curl_get($url);
    
    function curl_post($url, array $params = array(), $timeout = 5)
    {
        $ch = curl_init();//初始化
        curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        return ($data);
    }
    

  • 相关阅读:
    NET Core中实现一个Token base的身份认证
    自定义一个服务器感受一下管道是如何监听、接收和响应请求的
    把商品卖给用户
    Mac版Visual Studio预览版
    Docker实战
    大数据的四大特点
    ElasticSearch Nosql
    Oracle和Elasticsearch数据同步
    关于MySql链接url参数的设置 专题
    linux date
  • 原文地址:https://www.cnblogs.com/idjl/p/9610557.html
Copyright © 2011-2022 走看看