我的编程空间,编程开发者的网络收藏夹
学习永远不晚

php怎么模拟不同ip访问

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

php怎么模拟不同ip访问

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php怎么模拟不同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 = 'https://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正常访问

<?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, '来源');
登录后复制

模拟ip

curl_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 = 'https://www.jb51.net/';
 
$response = doCurl($url, $data, $header, $referer, 5);
 
echo $response;
?>
登录后复制

返回 allow access

以上就是php怎么模拟不同ip访问的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

php怎么模拟不同ip访问

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php如何模拟不同ip访问

今天小编给大家分享一下php如何模拟不同ip访问的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php模拟不同ip访问的方法:
2023-07-04

虚拟主机怎么不让海外ip访问

要阻止海外IP访问虚拟主机,可以采取以下几种方法:1. 使用防火墙:通过配置防火墙规则,只允许特定国家或地区的IP地址访问虚拟主机,拒绝其他所有的海外IP地址。常用的防火墙软件包括iptables、ufw等。2. 使用CDN服务:使用内容分
2023-08-22

虚拟主机直接用ip访问不了怎么解决

如果你无法通过IP地址直接访问虚拟主机,可能有以下几个原因和解决方法:1. 确认虚拟主机的IP地址是否正确:请确保你正在使用正确的IP地址。可以通过查看虚拟主机提供商的客户端控制面板或联系技术支持来获取正确的IP地址。2. 检查网络配置:确
2023-08-22

云虚拟主机怎么通过ip访问

要通过IP访问云虚拟主机,需要按照以下步骤操作:1. 打开浏览器,并输入虚拟主机的IP地址。如:http://192.168.0.1。2. 按下回车键后,浏览器将尝试连接到指定的IP地址上的虚拟主机。3. 如果连接成功,将显示虚拟主机的默认
2023-08-31

虚拟主机访问不到php文件怎么解决

要解决虚拟主机无法访问PHP文件的问题,您可以尝试以下几个步骤:1. 确定您的虚拟主机是否已经正确配置了PHP解释器。可以通过在网站根目录下创建一个phpinfo.php文件,并在文件中写入以下内容:```phpphpinfo();?>``
2023-08-26

虚拟主机访问不到php文件怎么解决

虚拟主机访问不到PHP文件的解决方法1.启用PHP模块2.检查代码错误3.检查文件权限(推荐:644)4.检查扩展安装5.检查.htaccess文件6.检查虚拟主机日志7.检查服务器配置提示:使用不同浏览器,清除缓存。启用PHP错误报告。检查防火墙或安全规则。将PHP文件重命名为.php.txt,通过FTP上传。
虚拟主机访问不到php文件怎么解决
2024-04-10

php curl 不能访问怎么办

php curl不能访问的解决办法:1、在PHP环境安装目录下找到ssleay32.dll和libeay32.dll文件;2、将其拷到system32目录下;3、重启IIS即可。
2020-01-10

php访问不了怎么解决

这篇文章主要介绍“php访问不了怎么解决”,在日常操作中,相信很多人在php访问不了怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php访问不了怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-26

php怎么禁止国内ip访问网站

php禁止国内ip访问网站的方法:1、通过“$_SERVER['REMOTE_ADDR']”获取ip地址;2、通过“if((!empty($banned['data']['country_id']){...}”判断并禁止国内ip访问网站。
2015-01-16

C语言不同线程怎么访问同一变量

在C语言中,不同线程可以通过共享的全局变量来访问同一变量。具体步骤如下:1. 定义一个全局变量,可以在不同线程之间共享。例如,定义一个int类型的全局变量`shared_var`。2. 在定义线程函数时,将需要访问的变量作为参数传入线程函数
2023-10-12

禅道 php 访问不了怎么办

禅道php访问不了的解决办法:1、下载并安装禅道开源集成环境;2、检查mysql的配置文件连接池并修改为原本的密码即可。
2015-10-16

PHP中怎么实现访问者模式

PHP中怎么实现访问者模式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Gof类图及解释GoF定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提
2023-06-20

Java Spring中怎么同时访问多种不同数据库

这篇文章主要介绍“Java Spring中怎么同时访问多种不同数据库”,在日常操作中,相信很多人在Java Spring中怎么同时访问多种不同数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java Sp
2023-06-17

虚拟主机超过月访问量限制不能访问怎么办

如果虚拟主机超过了月访问量限制而无法访问,可以考虑以下几个解决办法:1. 升级虚拟主机套餐:联系虚拟主机提供商,升级到更高级别的套餐,以获得更高的访问量限制。2. 优化网站:对网站进行优化,减少资源的使用,如压缩图片、使用缓存、减少外部脚本
2023-09-12

apache访问虚拟主机不行怎么解决

虚拟主机Apache访问问题解决指南解决Apache虚拟主机访问问题时,执行以下步骤:检查DNS解析验证虚拟主机配置检查防火墙和SELinux检查进程状态检查日志文件重启Apache启用网站禁用其他虚拟主机检查PHP和MySQL联系主机提供商
apache访问虚拟主机不行怎么解决
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录