失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php模拟IP请求 如何在php中利用curl对ip进行模拟

php模拟IP请求 如何在php中利用curl对ip进行模拟

时间:2020-06-05 17:21:08

相关推荐

php模拟IP请求 如何在php中利用curl对ip进行模拟

如何在php中利用curl对ip进行模拟

发布时间:-12-24 14:25:08

来源:亿速云

阅读:71

作者:Leah

如何在php中利用curl对ip进行模拟?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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

server.php<?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'allowaccess';

}else{

echo'denyaccess';

}

//获取访问者ip

functiongetip(){

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;

}

//获取访问者来源

functiongetreferer(){

if(isset($_SERVER['HTTP_REFERER'])){

return$_SERVER['HTTP_REFERER'];

}

return'';

}

?>

2.使用curl正常访问<?php

functiondoCurl($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'));

完整代码如下:<?php

functiondoCurl($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;

?>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

如果觉得《php模拟IP请求 如何在php中利用curl对ip进行模拟》对你有帮助,请点赞、收藏,并留下你的观点哦!

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