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

发布时间 - 2026-01-11 00:55:36    点击率:

对于限制了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.';

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./';

$response = doCurl($url, $data, $header, $referer, 5);

echo $response;
?>

返回 allow access

以上这篇php 使用curl模拟ip和来源进行访问的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# php  # curl  # 模拟ip  # 使用PHP curl模拟浏览器抓取网站信息  # PHP curl模拟浏览器采集阿里巴巴的实现代码  # php使用curl模拟浏览器表单上传文件或者图片的方法  # PHP基于curl实现模拟微信浏览器打开微信链接的方法示例  # php使用curl访问https示例分享  # php采用curl访问域名返回405 method not allowed提示的解决方法  # php使用curl并发减少后端访问时间的方法分析  # PHP基于curl模拟post提交json数据示例  # PHP使用Curl实现模拟登录及抓取数据功能示例  # PHP curl模拟登录带验证码的网站  # php使用curl伪造浏览器访问操作示例  # 给大家  # 希望能  # 这篇  # 小编  # 大家多多  # 无法访问  # https  # allow_referer  # amp  # www  # getreferer  # referer  # allow_ip  # strpos  # HTTP_CLIENT_IP  # _SERVER  # elseif  # cip  # empty  # access 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云ECS服务器部署织梦CMS网站?  音响网站制作视频教程,隆霸音响官方网站?  网站建设保证美观性,需要考虑的几点问题!  如何安全更换建站之星模板并保留数据?  QQ浏览器网页版登录入口 个人中心在线进入  Android Socket接口实现即时通讯实例代码  Swift开发中switch语句值绑定模式  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  php 三元运算符实例详细介绍  Laravel怎么上传文件_Laravel图片上传及存储配置  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  如何快速查询域名建站关键信息?  Android仿QQ列表左滑删除操作  如何快速搭建高效可靠的建站解决方案?  如何用5美元大硬盘VPS安全高效搭建个人网站?  javascript日期怎么处理_如何格式化输出  简单实现jsp分页  如何用腾讯建站主机快速创建免费网站?  linux top下的 minerd 木马清除方法  Laravel如何创建自定义Facades?(详细步骤)  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在IIS7上新建站点并设置安全权限?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  非常酷的网站设计制作软件,酷培ai教育官方网站?  海南网站制作公司有哪些,海口网是哪家的?  如何破解联通资金短缺导致的基站建设难题?  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Android中AutoCompleteTextView自动提示  Laravel怎么实现模型属性的自动加密  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  如何获取PHP WAP自助建站系统源码?  浅谈javascript alert和confirm的美化  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Swift中循环语句中的转移语句 break 和 continue  大连 网站制作,大连天途有线官网?  Bootstrap整体框架之JavaScript插件架构  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何在香港免费服务器上快速搭建网站?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  如何确保FTP站点访问权限与数据传输安全?