1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php模拟苹果手机访问 php 使用curl模拟ip和来源进行访问的实现方法

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

时间:2020-10-23 22:01:17

相关推荐

php模拟苹果手机访问 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 = '';

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

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 = '/server.php';

$response = doCurl($url);

echo $response;

?>

返回 deny access

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

模拟来源

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

模拟ip

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

完整代码如下:

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 = '/server.php';

$data = array();

// 设置IP

$header = array(

'CLIENT-IP: 192.168.1.100',

'X-FORWARDED-FOR: 192.168.1.100'

);

// 设置来源

$referer = '/';

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

echo $response;

?>

返回 allow access

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。