curl php 模拟来源_如何通过php 使用curl模拟ip和来源进行访问 -

本篇文章给大家带来的内容是关于如何使用访问控制 RAM 授权和访问 ECS 实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。鉴权规则默认情况下,您能使用 ECS API 完整操作自己创建的 ECS 资源...

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

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

server.php<?php $client_ip = getip();$referer = getreferer();$allow_ip = '192.168.1.100';$allow_referer = 'http://www.csdn.net';if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){ echo 'allow access';

}else{ echo 'deny access';

}// 获取访问者ipfunction 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正常访问<?phpfunction 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.example.com/server.php';$response = doCurl($url);echo $response;?>

返回 deny access

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

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

模拟ipcurl_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://www.example.com/server.php';$data = array();

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

// 设置来源$referer = 'http://www.csdn.net/';$response = doCurl($url, $data, $header, $referer, 5);

echo $response;

?>

返回 allow access

本篇讲解了php 使用curl模拟ip和来源进行访问的相关知识,更多相关内容请关注php中文网。

相关推荐:

通过mysql 转换NULL数据方法

关于php 函数使用可变数量的参数的相关内容

如何通过php 调用新浪API生成短链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值