php curl抓取网页指定内容(伪造客户端IP地址,伪造访问referer:(地址栏))

优采云 发布时间: 2021-09-10 06:08

  php curl抓取网页指定内容(伪造客户端IP地址,伪造访问referer:(地址栏))

  1、 伪造客户端IP地址,伪造访问referer:(一般这个可以访问数据)

  curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-FORWARDED-FOR:110.85.108.185', 'CLIENT-IP:110.85.108.185']);

curl_setopt($curl, CURLOPT_REFERER, 'http://www.demo.com/test.php');

  2、 如果以上还是不行,可能是别人抓到了真实IP。这个时候我们会使用代理访问。

  #  详细方式

curl_setopt($curl, CURLOPT_PROXY, '112.85.209.72');    //代理服务器地址

curl_setopt($curl, CURLOPT_PROXYPORT, 80);             //代理服务器端口

//curl_setopt($curl, CURLOPT_PROXYUSERPWD, ':'');      //http代理认证帐号,username:password的格式

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式

#  简写方式

curl_setopt($curl, CURLOPT_PROXY, 'http://112.85.209.72:80');

  3、 还有另一种方式可以通过浏览器访问,但不能通过 curl 访问。 (对方检查了useragent,如果没有,则认为是非法来源等)

  $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ';

$useragent.= '(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36';

curl_setopt($curl, CURLOPT_USERAGENT, $useragent);

  PHP完整的Curl抓取数据功能1:

  /**

 * 请求接口

 * @access public

 * @param string $url 请求地址

 * @param array $data 提交参数 没有get 有post

 * @return bean|array

 */

public function send($url='')

{   

    set_time_limit(0);

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

    curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-FORWARDED-FOR:127.0.1.1', 'CLIENT-IP:127.0.1.1']);

    curl_setopt($curl, CURLOPT_REFERER, 'http://www.demo.com/demo.php');

    curl_setopt($curl, CURLOPT_PROXY, 'http://127.0.0.1:80');

    $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ';

    $useragent.= '(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36';

    curl_setopt($curl, CURLOPT_USERAGENT, $useragent);

    if(!empty($data) && is_array($data)){

        curl_setopt($curl, CURLOPT_POST, true);

        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

    }

    $html = curl_exec($curl);

    if($error=curl_errno($curl)){

        return false;

    }

    curl_close($curl);

    return $html;

}

  如果浏览器开启了弹窗过滤功能,您将无法跳转到下载页面。只需在浏览器地址栏右侧的符号提示处单击“允许”即可!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线