php 使用curl模拟ip和来源进行访问的实现方法

开发技术 作者: 2024-08-17 11:15:01
下面小编就为大家带来一篇php 使用curl模拟ip和来源进行访问的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

1.设置页面限制ip和来源访问

server.PHP

$client_ip = getip();
$referer = getreferer();

$allow_ip = '192.168.1.100';
$allow_referer = '//www.jb51.cc';

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正常访问

$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.example.com/server.php';
$response = doCurl($url);

echo $response;
?>

返回

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

模拟来源

curl_setopt($ch,CURLOPT_REFERER,'来源');

模拟ip

curl_setopt($ch,array('CLIENT-IP: 模拟ip','X-FORWARDED-FOR: 模拟ip'));

完整代码如下:

// 模拟来源
curl_setopt($ch,$referer);

$response = curl_exec($ch);

if($error=curl_error($ch)){
die($error);
}

curl_close($ch);

return $response;

}

// 调用
$url = 'http://www.example.com/server.php';
$data = array();

// 设置IP
$header = array(
'CLIENT-IP: 192.168.1.100','X-FORWARDED-FOR: 192.168.1.100'
);

// 设置来源
$referer = '//www.jb51.cc/';

$response = doCurl($url,$data,$header,$referer,5);

echo $response;
?>

返回 allow access

以上这篇PHP 使用curl模拟ip和来源进行访问的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_63756.html
php curl 模拟ip