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);
    }
    

  • 相关阅读:
    【云计算奇妙学习之旅】第一期:初识云计算
    手撸平衡二叉树!保证讲懂平衡过程!
    复习一下各种排序算法
    CSAPP实验——DataLab
    信息的表示和处理(整数部分)
    实现一个简单的解释器(6)
    实现一个简单的解释器(5)
    实现一个简单的解释器(4)
    实现一个简单的解释器(3)
    实现一个简单的解释器(2)
  • 原文地址:https://www.cnblogs.com/idjl/p/9610557.html
Copyright © 2011-2022 走看看