文档章节

你永远获得不到我的真实IP 模拟IP 隐藏IP 代理IP 伪装IP 高匿代理 普匿代理 透明代理IP

letwang
 letwang
发布于 2015/01/16 18:55
字数 683
阅读 9156
收藏 12

PHP世界不算漏洞的漏洞 - 你永远获得不到我的真实IP

我粗略列举6种PHP业内、国际各大开源系统获取用户真实IP的案例(包括Magento Zencart Zend Framework Yii...国内的就不提了吧!通杀!):

PHP获取用户真实IP方法1:

<?php
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;
}
echo GetIP();
?>

PHP获取用户真实IP方法2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>




PHP获取用户真实IP方法3:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>



PHP获取用户真实IP方法4:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>



PHP获取用户真实IP方法5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
  if($ip){
   array_unshift($ips, $ip); $ip = FALSE;
  }
  for($i = 0; $i < count($ips); $i++){
   if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
    $ip = $ips[$i];
    break;
   }
  }
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>



PHP获取用户真实IP方法6:


<?php
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>

获取用户真实IP原理:

客官看完了业界常用的获取用户真实IP方法后,发现有个共同规律,主要核心就是

  1. HTTP_CLIENT_IP
  2. HTTP_X_FORWARDED_FOR
  3. REMOTE_ADDR

不同的演变,只是代码兼容性罢了!

如何模拟用户真实IP?

问:如果可以伪造模拟HTTP_CLIENT_IP,伪造模拟HTTP_X_FORWARDED_FOR,伪造模拟REMOTE_ADDR,不就可以达到追踪不到用户真实IP的目的了么?

答:楼上理解完全正确!如果做到这样完全可以通杀99%的获取用户真实IP,以用户IP为标识的系统!

支招【LET采集技巧】(curl、socket、fsocketopen、stream_socket_client):

如何模拟HTTP_CLIENT_IP?HTTP_CLIENT_IP可以模拟么?伪装HTTP_CLIENT_IP!


curl_setopt($curl, CURLOPT_HTTPHEADER, array (
            'Client_Ip: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统


如何模拟HTTP_X_FORWARDED_FOR?HTTP_X_FORWARDED_FOR可以模拟么?伪装HTTP_X_FORWARDED_FOR!


curl_setopt($curl, CURLOPT_HTTPHEADER, array (
            'X-Forwarded-For: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统


如何模拟REMOTE_ADDR?REMOTE_ADDR可以模拟么?伪装REMOTE_ADDR!


curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($curl, CURLOPT_PROXY, '1.1.1.1:8080');//自行百度获得普匿代理IP即可,高匿代理IP更佳!
//优点:通杀100%系统



© 著作权归作者所有

letwang

letwang

粉丝 198
博文 58
码字总数 89933
作品 1
台北
技术主管
私信 提问
【爬虫】你需要的反反爬小妙招来啦~

1 前言 作为一名职业的爬虫工程师,每天面对的就是要和目标网站后方的反爬虫工程师斗智斗勇,似乎颇有一种攻城拔寨的感觉,在终于突破层层阻碍之后,“200 OK”将会到来。 在关于反反爬的第一...

Mocha_Lee
2017/11/27
0
0
使用代理IP还能查到真实IP吗?三种代理隐藏IP的效果

大家使用代理IP,主要目的几乎都是切换IP,隐藏自己真实的IP地址。这使用代理IP还能查到真实IP吗?哪些技术可以查到真实的IP呢?下面请跟黑洞代理一起去了解下关于代理IP的一些知识。 代理分...

飞速云动态
06/11
0
0
关于隐藏请求IP地址,Mac地址。--做爬虫

大家好, 请问个问题,最近在做爬虫。发刚现过度抓取就会被封,通过测试好像服务器记录了我的访问Mac地址, 因为我换了ip ,用了高匿代理服务器发现还是访问限制。(用浏览器访问做代理服务器...

唐代de豆腐
2015/07/21
1K
2
关于python 注册的问题

我想用python实现对一个网站的自动化注册 为了躲避验证码,我找到了一些代理ip(该网站对ip的第一次一次注册不会出发验证码机制) 我模拟了注册过程中的post和cookie 当我不用代理的时候,可以...

dongond
2013/03/07
371
2
Python网络爬虫(requests, 代理,Web认证, SSL证书认证)

requests模块 代理(proxies) 西刺代理 快代理 全网代理 高匿ip:看不到真实ip 透明ip:可以看到代理 和 真实ip 普通代理 proxies = {"协议":"协议://IP地址:端口号"} 私密代理 proxies = ...

巴黎香榭
2018/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

让更多浏览器支持html5元素的简单方法

当我们试图使用web上的新技术的时候,旧式浏览器总是我们心中不可磨灭的痛!事实上,所有浏览器都有或多或少的问题,现在还没有浏览器能够完整的识别和支持最新的html5结构元素。但是不用担心...

前端老手
19分钟前
5
0
把微软、MongoDB 与华为放到一起,为什么?

作者:开源中国(OSCHINA) 内容来源:开源中国(OSCHINA) 最近开源中国(OSCHINA)在庆祝 11 周年生日,编辑部借着这个机会梳理了一下这一年来我们追过的那些开源界/开发界的热点新闻,算作...

编辑部的故事
50分钟前
507
0
OSChina 周三乱弹 —— 投篮的一霎那,你突然心悸

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享ろん的单曲《First Love (原唱:宇多田ヒカル / produced by keeno)》: 《First Love (原唱:宇多田ヒカル / prod...

小小编辑
今天
922
14
小程序for批量嵌套数据

js Page({ data: { objectArray: [{ id: 5, unique: 'unique_5', count:'countf' }, { id: 4, unique: 'unique_4', ......

淘幻幻
今天
5
0
分享一个 pycharm 专业版的永久使用方法

刚开始接触Python,首先要解决的就是Python开发环境的搭建。 目前比较好用的Python开发工具是PyCharm,他有社区办和专业版两个版本,但是社区版支持有限,我们既然想好好学python,那肯定得用...

上海小胖
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部