php curl修改ip,php中curl设置ip的方法
php中curl设置ip的方法
发布时间:2020-08-28 09:44:57
来源:亿速云
阅读:84
作者:小新
php中curl设置ip的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!php curl设置ip的方法:首先通过getip方法获取访问者ip;然后使用“getreferer”方法获取访问者来源;最后实现设置页面限制ip和来源访问即可。
php 使用curl模拟ip和来源进行访问
对于限制了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';
}
// 获取访问者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正常访问<?php
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, '来源');
模拟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 curl修改ip,php中curl设置ip的方法相关推荐
- VM虚拟机中如何设置ip地址
当我们在windows环境下,在cmd命令行中输入ipconfig可以看到我们的主机ip地址,但是我们创建了一台虚拟机,并且装好系统时,输入ifconfig(这里和windows下命令不一样,不要搞混 ...
- Asp.Net Core 中如何设置 IP 白名单
咨询区 MartinM: 我想在一个web站点中实现ip白名单功能,在 MVC 时代我只需要在 web.config 中添加如下配置即可. <security><ipSecurity ...
- 一键设置IP地址(快速设置ip地址)
利用一个批处理文件设置ip地址 假如将ip地址设置为192.168.1.8 子网掩码为255.255.255.0 网关为192.168.1.1 主DNS为202.96.128.68 备用DNS为20 ...
- 将ip电话注册到服务器上,ip电话怎么安装设置 ip电话安装设置方法文字详解【图文】...
随着互联网时代的到来,我们的地球变成了一个"村庄",跨越了时间和空间的界限,可以不夸张的说,一个位于"天涯",另一个身在"海角"都能相互通话 ...
- 了解IP地址及如何设置IP地址
众所周知,在电话通讯中,电话用户是靠电话号码来识别的.同样,在网络中为了区别不同的计算机,也需要给计算机指定一个号码,这个号码就是"IP地址". 什么是IP地址 所谓IP地址就是给 ...
- python基础教程:修改Python列表中元素的几种方法
一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...
- linux suse10虚拟机在静态IP局域网中如何设置桥接上网
1.vm网络设置: 手动选择物理网卡为VMnet0.同时自动桥接不选:清空DHCP. 2.进入linux,进入YaST2,选择网路设备中的网卡选项.点击下一步,点击编辑,进入网络地址设置界面.设置可用 ...
- 命令行修改 Ubantu 配置静态固定IP地址,或设置ip自动匹配的方法
当我们想给Ubantu系统修改IP的时候,我们可以通过命令行来进行修改,IP保存路径如下: /etc/netplan/XX-installer-config.yaml 1. 找到config文件并打开 ...
- Windows10 修改host文件(windows 设置ip别名)
Host文件的位置: C:\Windows\System32\drivers\etc\hosts 例如:将winner映射到虚拟机192.168.80.100 IP地址上 只需要在host文件的最后边 ...
最新文章
- 异步方法顺序调用问题
- 21 window对象常见事件
- 如何绘制漂亮的多序列比对图片
- oracle 单表查询 详细图文
- Android之滑动事件冲突解决 Touch事件处理机制总结
- 保存一个 Python 对象,之后使用时直接读取
- 多输出模型的评价和模型预测
- Mac UE各版本破解方法
- 数据库笔试题 (3)
- Hexo及Next主题配置(最新版)
- Git 基础命令与事件详解(基础版)
- emcy协议_商铺三方租赁协议合同范本
- Scrapy爬虫框架入门(一)——阳光政务平台
- 正弦电压有效值推导过程(为什么与频率无关)
- uniapp H5公众号errMsg: “onMenuShareAppMessage:fail, the permission value is offline verifying“
- 我的原创软件作品——弹窗拦截器V1.0.1
- 小德,真的没想到,去年的千年德三子到现如今的现象级
- 供应链金融及产业风控
- RSA2分段加密解密
- 《SolidWorks 2014中文版机械设计从入门到精通》——2.2 草图命令