首页 > 编程语言 >PHP 使用CURL库IP欺骗,隐藏真实客户端IP

PHP 使用CURL库IP欺骗,隐藏真实客户端IP

时间:2024-04-29 11:22:05浏览次数:30  
标签:php HTTP ADDR IP SERVER REMOTE CURL PHP

首先搭建环境,建立个ip.php.

代码如下:

<?

error_reporting(0);

function GetIP(){
if($_SERVER['HTTP_CLIENT_IP']){
   $onlineip=$_SERVER['HTTP_CLIENT_IP'];
   }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){
   $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
   }else{
   $onlineip=$_SERVER['REMOTE_ADDR'];
   }
return $onlineip;
}

?>

 

再建立个index.php

代码如下:

 1 <?php
 2 
 3 error_reporting(0);
 4 
 5 require 'ip.php';
 6    
 7 echo '<hr>'.'Your IP is '.GetIP().'<br>'.'<hr>';
 8 
 9 /*echo 'REMOTE_ADDR is '.$_SERVER['REMOTE_ADDR'].'<br>';
10 echo 'HTTP_CLIENT_IP is  '.$_SERVER['HTTP_CLIENT_IP'].'<br>';
11 echo 'HTTP_X_FORWARDED_FOR is '.$_SERVER['HTTP_X_FORWARDED_FOR'].'<br>';
12 echo 'HTTP_VIA is '.$_SERVER['HTTP_VIA'];*/
13 
14 ?>

 

测试:

IP显示正确,客户端真实IP是218.241.179.50

去掉index.php里面的注释,使用代理观察

可以看到REMOTE_ADDR方法抓到了代理IP

HTTP_XFORWARDED_FOR还是抓到了客户端的真实IP

接下来编辑curl_proxy.php,示例代码:

<?php

error_reporting(0);

function curl_string ($url,$user_agent,$proxy){
$ch = curl_init();
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_COOKIEJAR, "d:\cookies.txt");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP:125.210.188.36', 'X-FORWARDED-FOR:125.210.188.36'));  //此处可以改为任意假IP
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);

$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
$url_page = "http://s4nd.no-ip.org/test/index.php";
$user_agent = "Mozilla/4.0";
$proxy = "http://125.210.188.36:80";    //此处为代理服务器IP和PORT

$string = curl_string($url_page,$user_agent,$proxy);

echo $string;

?>

访问curl_proxy.php

122.66.*.*是运行脚本服务器的IP,这样就实现了隐藏客户端真实IP的目的。

有的代理服务器会被HTTP_VIA方法侦测到使用了代理服务器,实际上透明代理和高级匿名代理有很大区别。

注意:有一次我做开发的时候发现对方使用的是$_SERVER['REMOTE_ADDR'],无论我怎么改变curl发现对方还是可以获取到我的真实ip,然后我百度了半天才确认curl无法模拟$_SERVER['REMOTE_ADDR'],你只能祈祷对方用的不是$_SERVER['REMOTE_ADDR']获取你的ip。

转载:https://www.cnblogs.com/godrain/p/4401524.html

标签:php,HTTP,ADDR,IP,SERVER,REMOTE,CURL,PHP
From: https://www.cnblogs.com/huangcong/p/18165278

相关文章

  • ddddocr 文字验证码识别库 pip install下载失败
    第三方开源库,验证码识别github地址:https://github.com/sml2h3/ddddocr安装pipinstallddddocr下载失败的话使用国内安装源pip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simpleddddocr附带一个api快速部署github地址:https://github.com/sml2h3/ocr_api_server......
  • php 开发规范
    ===========================框架=========================·使用laravel框架,原因:tp的框架路由和orm没有laravel好用· 使用强制路由,方便接口多时,分多版本,分文件夹等操作 ===========================接口=========================· 接口开发注意字段类型,字段是int,查......
  • 解决PHPExcel超时、内存超出的问题
    一、PHPExcel导出数据量大的时候容易超时、内存使用超出限制。以前都是将PHP内存使用限制不断增大,超时时间不断增大来应对,但即使如此,web端导出时,浏览器依然会超时。考虑了Jquery+Ajax+table导出,数据量依然会使浏览器卡死,经尝试可以用以下方法,//打开PHP文件句柄,php://output......
  • JavaScript: FullScreen
     <!doctypehtml><html><head><metacharset="utf-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metacontent="text/html;charset=utf-8"http-equiv=&......
  • 为什么我反对过度使用TypeScript?
    前言在2024年,TypeScript肯定算不上什么新鲜的技术.但是经过长时间的使用,我认为可以使用,但是要适度.类型跟不上业务的变化我们知道TypeScript的类型定义是业务的体现.但是业务的变化在很多公司都是非常快的.在产品功能上可能更改了一点点类型定义,但是你的类型系统可......
  • IPC-7711/21D, IPC-7711D, IPC-7721D 电子组件的返工、修改和维修,验收标准。Rework,
    IPC-7711/21-RevisionD-StandardOnly:Rework,ModificationandRepairofElectronicAssembliesTheIPC-7711/21guideprovidesproceduresforrework,repairandmodificationofprintedboardassemblies,includingtoolsandmaterials,commonprocedures,......
  • IPC最新发行了新标准:IPC-A-610J, IPC-J-STD-001J, IPC-7711/21D, IPC-2221C
    IPC最新发行了新标准:IPC-A-610J,IPC-J-STD-001J,IPC-7711/21D,IPC-2221C  2024年伊始,IPC又更新了一些新的标准,大家可以及时去更新了。IPC-A-610J_EN2024TOCAcceptabilityofElectronicAssemblies大家对这个标准都不陌生了吧,从事电子行业的技术......
  • yum安装mysql报错--您可以尝试添加 --skip-broken 选项来解决该问题 清除缓存命令
    yum安装mysql报错--您可以尝试添加--skip-broken选项来解决该问题    安装mysql时,如果安装报错,首先删除缓存,    1、清除缓存  yumcleancache    2、重新加载  yummakecache    3、重新安装  yuminstallmysql    此......
  • 树莓派怎么设置固定IP地址
    参考https://blog.csdn.net/ByteBox/article/details/134752264修改配置文件/etc/dhcpcd.conf修改以下配置,其余配置保存不变本次修改的是无线网卡wlan0interfacewlan0staticip_address=192.168.4.212/24staticrouters=192.168.4.1staticdomain_name_servers=192.16......
  • ThinkPHP6 多模型关联查询操作记录
    新入职后组长安排了一个小的管理项目来检验能力,后发现自身对于ThinkPHP框架中的模型关联属于一窍不通,故被终止项目叫楼主去恶补ThinkPHP6框架知识。对于多联表查询之前本人一直使用join方法,但是此方法对于代码效率和维护都有较大影响,故在此尝试使用ThinkPHP框架内置的模型......