站三界导航
首页 PHP代码PHP使用curl模拟ip和来源进行访问

PHP使用curl模拟ip和来源进行访问

  • PHP代码
  • 来源:站三界导航
  • 63阅读
  • 2022-10-08

对于限制了ip和来源的网站,使用正常的访问方式是无法访问的。本文将介绍一种方法,使用php的curl类实现模拟ip和来源,访问那些限制了ip和来源的网站。

server.php

<?php
$client_ip = getip();
$referer = getreferer();
 
$allow_ip = '192.168.1.100';
$allow_referer = 'http://www.zhansanjie.com';
 
if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){
    echo 'allow access';
}else{
    echo 'deny access';
}
 
// 获取访问者ip
function getip(){
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        $cip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $cip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }elseif(!empty($_SERVER['REMOTE_ADDR'])){
        $cip = $_SERVER['REMOTE_ADDR'];
    }else{
        $cip = '';
    }
    return $cip;
}
 
// 获取访问者来源
function getreferer(){
    if(isset($_SERVER['HTTP_REFERER'])){
        return $_SERVER['HTTP_REFERER'];
    }
    return '';
}
?<
2.使用curl正常访问

>?php
function doCurl($url, $data=array(), $header=array(), $timeout=30){
 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
 
    $response = curl_exec($ch);
 
    if($error=curl_error($ch)){
        die($error);
    }
 
    curl_close($ch);
 
    return $response;
 
}
 
// 调用
$url = 'http://www.zhansanjie.com/data.php';
$response = doCurl($url);
echo $response;
?<
返回 deny access

3.使用curl模拟ip和来源进行访问
1.模拟来源
curl_setopt($ch, CURLOPT_REFERER, '来源');
2.模拟ip
curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: 模拟ip','X-FORWARDED-FOR: 模拟ip'));

完整代码如下
>?php
function doCurl($url, $data=array(), $header=array(), $referer='', $timeout=30){
 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
 
    // 模拟来源
    curl_setopt($ch, CURLOPT_REFERER, $referer);
 
    $response = curl_exec($ch);
 
    if($error=curl_error($ch)){
        die($error);
    }
 
    curl_close($ch);
 
    return $response;
 
}
// 调用
$url = 'http://xxx.com/server.php';
$data = array();
// 设置IP
$header = array(
    'CLIENT-IP: 192.168.1.100',
    'X-FORWARDED-FOR: 192.168.1.100'
);
// 设置来源
$referer = 'http://xxxx.cn/';
$response = doCurl($url, $data, $header, $referer, 5);
echo $response;
?<
返回 allow access



本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/20805.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。