curl 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 = '//www.jb51.net';
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 = 'http://www.example.com/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 = '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.net/';
$response = doCurl($url, $data, $header, $referer, 5);
echo $response;
?>
返回 allow access
以上这篇php 使用curl模拟ip和来源进行访问的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
本文标题: php 使用curl模拟ip和来源进行访问的实现方法
本文地址: http://www.cppcns.com/wangluo/php/189549.html
curl php 模拟来源_php 使用curl模拟ip和来源进行访问的实现方法相关推荐
- curl php 模拟来源_PHP cURL实现模拟登录与采集使用方法详解教程
对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...
- php 模拟ip访问网页,curl模拟浏览器,ip,来源,进行网站采集的实现方法
curl模拟浏览器,ip,来源,进行网站采集的实现方法 function doCurl($url, $data=array(), $header=array(), $referer='', $time ...
- php模拟苹果手机访问,php 使用curl模拟ip和来源进行访问的实现方法
对于限制了ip和来源的网站,使用正常的访问方式是无法访问的.本文将介绍一种方法,使用php的curl类实现模拟ip和来源,访问那些限制了ip和来源的网站. 1.设置页面限制ip和来源访问 server ...
- php 提取登录QQsid_php模拟登录qq邮箱(curl命令详解)
header("Content-type:text/html;charset=utf-8"); $cookie_file = dirname(__FILE__)."/co ...
- php curl 模拟Host,php模拟用户请求之CURL
php的curl功能使用之前,首先我们要开启curl模块,如果是windows操作系统只需要打开php_curl.dll既可,如果是linux我们可以单独编译curl然后修改配置文件增加curl.so ...
- PHP用CURL伪造IP和来源
PHP用CURL伪造IP和来源CURL确实很强悍,可以伪造IP和来源.1.php 请求 2.php .1.php代码: $ch = curl_init(); curl_setopt($ch, CURL ...
- php curl post数组_PHP发起curl POST请求时传递数组
使用 PHP 的 curl 可以发起 HTTP 外部请求,但是发起 POST 请求时,是无法直接传递数组的,从 curl 层面来说,也没有所谓的数组的概念,而更加通用也更合理的传递数据的格式其实是键值 ...
- php curl 批量,关于用php的curl批量抓取内容
先上个单个采集的curl访问案例<?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'www.baidu.com'); curl ...
- php循环输出多个网络地址图片,php中curl循环往请求多个URL和多线程去请求多个URL的方法...
php 中curl 循环去请求多个URL和多线程去请求多个URL的方法 第一种:循环请求$sr=array(url_1,url_2,url_3); foreach ($sr as $k=>$v) ...
最新文章
- 【天线】天线基础:名词解释
- 深度学习光环背后,机器学习的一些新进展!!!
- 基于Xml 的IOC 容器的初始化
- 360文件粉碎机_中山三乡资料文件销毁粉碎销毁资料文件公司一览表
- ruby 生成哈希值_哈希== Ruby中的运算符
- /lib/libcrypto.so“ not found,is 32-bit instead of 64-bit
- 虚拟机的ip地址为什么会发生变化
- 打孔怎么定位_电视机挂架怎么安装
- QTP的那些事--共享对象库的使用
- 利用css进行网页布局
- View与Model绑定注意事项 (视图无数据显示)
- ucgui界面 vc_【MM32F103试用体验】ucGUI + FreeRTOS +触摸屏图形界面开发
- Oracle long 类型转 varchar2
- windows10强制删除文件_Windows10中恶意软件删除
- GitHub数据库榜单第一:Redis核心原理实践PDF,点赞已过百万+
- Linux系统 | vim配置
- Camtasia2022升级最新中文版 2022电脑录屏神器
- 计算机word知识试题及答案,全国计算机等级考试Word试题及答案(2)
- 才茂CM520如何通过4G物联网卡将信号发送到PC端
- 安卓手机微信浏览器缓存问题
热门文章
- Vue 页面如何监听用户预览时间
- 高段位产品经理必须掌握的商业模式分析该怎么做?
- vue 代理重定向_关于vue-router,路由重定向的使用分析
- python常用库有哪些餐厅_Python常用库整理
- 查看oracle的块大小,查看操作系统块大小
- php动态成本管理,网上审批系统环境下的动态目标成本管理
- Mysql身份认证漏洞及利用(CVE-2012-2122)
- 去掉左边0_SLAM从0到1——11. 视觉里程计VO内容框架
- 分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#
- CSS属性选择器温故-4