文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

php如何模拟不同ip访问

2023-07-04 14:02

关注

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

php模拟不同ip访问的方法:1、设置页面限制ip和来源访问;2、使用curl正常访问;3、使用curl模拟ip和来源进行访问,代码如“curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: ip','X-FORWARDED-FOR: ip'));”。

php 使用curl模拟ip和来源进行访问的实现方法

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

设置页面限制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';}  // 获取访问者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 '';} ?>

使用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

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

模拟来源

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

模拟ip

curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: 模拟ip','X-FORWARDED-FOR: 模拟ip'));

完整代码如下:

<?phpfunction 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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯