获取真实IP的方法,以及伪造IP的例子代码_GoverChan的博客-CSDN博客


本站和网页 https://blog.csdn.net/qq_15766181/article/details/50605959 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

获取真实IP的方法,以及伪造IP的例子代码_GoverChan的博客-CSDN博客
获取真实IP的方法,以及伪造IP的例子代码
GoverChan
于 2016-01-29 11:16:02 发布
29530
收藏
15
分类专栏:
PHP
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_15766181/article/details/50605959
版权
PHP
专栏收录该内容
94 篇文章
1 订阅
订阅专栏
内容提要:这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它……
  获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.
getIp
function getIp() {     if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP");     else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR");     else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR");     else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR'];     else $ip = "unknown";     return ($ip); } 
  现在需要对这段代码进行解释,这里用到了两个函数,getenv()和strcasecmp(),前一个函数获取得系统的环境变量,如果能取到值,则返回该值,不能则返回false.
  $_SERVER是服务器超级全局变量数组,用$_SERVER['REMOTE_ADDR']同样可以获取到客户端的IP地址.二者的区别在于,getenv不支持IIS的isapi方式运行的php.
  strcasecmp(string1,string2)字符串函数的用法是把string1和string2进行比较,如果相等返回0,如果string1大于string2,返回大于0的数,小于则返回小于0的数.
  函数先使用客户IP,如果不成立尝试用代理的方法,如果不行,再使用REMOTE_ADDR.还看到过一个检测IP更详细的方法,考虑了IP的欺骗,和多重代理代码.方法相类似.
function getip() {     $unknown = 'unknown';     if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)) {         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];     }     elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)) {         $ip = $_SERVER['REMOTE_ADDR'];     }     /*  处理多层代理的情况  或者使用正则方式:$ip = preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown;  */     if (false !== strpos($ip, ',')) $ip = reset(explode(',', $ip));     return $ip; } 
一、没有使用代理服务器的PHP获取客户端IP情况:
    REMOTE_ADDR = 客户端IP    HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
    REMOTE_ADDR = 最后一个代理服务器 IP    HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)    这类代理服务器还是将客户端真实的IP发送给了访问对象,无法达到隐藏真实身份的目的.
三、使用普通匿名代理服务器的PHP获取客户端IP情况:Anonymous Proxies
    REMOTE_ADDR = 最后一个代理服务器 IP    HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)    这种情况下隐藏了客户端的真实IP,但是向访问对象透露了客户端是使用代理服务器访问它们的.
四、使用欺骗性代理服务器的情况:Distorting Proxies
    REMOTE_ADDR = 代理服务器 IP    HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)    这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它.
五、使用高匿名代理服务器的PHP获取客户端IP情况:High Anonymity Proxies (Elite proxies)
    REMOTE_ADDR = 代理服务器 IP    HTTP_X_FORWARDED_FOR = 没数值或不显示
    无论是REMOTE_ADDR还是HTTP_FORWARDED_FOR,这些头消息未必能够取得到,因为不同的浏览器不同的网络设备可能发送不同的IP头消息.因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值.
-----------------------------------------------------------------------------------------测试例子----------------------------------------------------------------------------------------------------
REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP$_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造)$_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)
下面是测试代码:
服务端获取IP地址 http://ip.itlearner.com/ 其代码如下:
$s_onlineip = getenv(‘HTTP_CLIENT_IP’);echo “HTTP_CLIENT_IP:”.$s_onlineip.”
\n”;$s_onlineip = getenv(‘HTTP_X_FORWARDED_FOR’);echo “HTTP_X_FORWARDED_FOR:”.$s_onlineip.”
\n”;$s_onlineip = getenv(‘REMOTE_ADDR’);echo “REMOTE_ADDR:”.$s_onlineip.”
\n”;$s_onlineip = $_SERVER['REMOTE_ADDR'];echo “\$_SERVER['REMOTE_ADDR']:”.$s_onlineip.”
\n”;
客户端代码:伪造IP测试:
$url = ‘http://ip.itlearner.com/’;$data_string = ‘test=test’;$URL_Info = parse_url($url);$request = ”;if (!isset($URL_Info["port"]))$URL_Info["port"]=80;$request.=”POST “.$URL_Info["path"].” HTTP/1.1\n”;$request.=”Host: “.$URL_Info["host"].”\n”;$request.=”Referer: “.$URL_Info["host"].”\n”;$request.=”Content-type: application/x-www-form-urlencoded\n”;$request.=”X-Forwarded-For:192.168.1.4\n”;//HTTP_X_FORWARDED_FOR的值$request.=”client_ip:192.168.1.5\n”;//HTTP_CLIENT_IP的值$request.=”Content-length: “.strlen($data_string).”\n”;$request.=”Connection: close\n”;$request.=”\n”;$request.=$data_string.”\n”;
$fp = fsockopen($URL_Info["host"], $URL_Info["port"]);fputs($fp, $request);$result = ”;while(!feof($fp)) {$result .= fgets($fp, 1024);}fclose($fp);echo $result;
输出:
HTTP_CLIENT_IP:192.168.1.5HTTP_X_FORWARDED_FOR:192.168.1.4REMOTE_ADDR:127.0.0.1$_SERVER['REMOTE_ADDR']:127.0.0.1
代理IP测试:
$cUrl = curl_init();curl_setopt($cUrl, CURLOPT_URL, $url);curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($cUrl, CURLOPT_HEADER, 1);curl_setopt($cUrl, CURLOPT_USERAGENT, “Mozilla/99.99″);//curl_setopt($cUrl, CURLOPT_TIMEOUT, 10);curl_setopt($cUrl, CURLOPT_PROXY, ’125.77.194.103:80′);$c = curl_exec($cUrl);curl_close($cUrl);echo $c;
输出:
HTTP_CLIENT_IP:HTTP_X_FORWARDED_FOR:REMOTE_ADDR:125.77.194.103$_SERVER['REMOTE_ADDR']:125.77.194.103
--------------------------------------------------------------------------------------------------伪造2--------------
伪造IP来源对于php来说是很简单的一件事情,我们只要利用了php curl即可实现伪造IP来源哦,IP地址你可以随便写哦。
实例
 代码如下复制代码$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php");curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));//IPcurl_setopt($ch, CURLOPT_REFERER, "http://www.hzhuti.com/ ");   //来路curl_setopt($ch, CURLOPT_HEADER, 1);$out = curl_exec($ch);curl_close($ch);
2.php代码:
 代码如下复制代码function getClientIp() {    if (!empty($_SERVER["HTTP_CLIENT_IP"]))        $ip = $_SERVER["HTTP_CLIENT_IP"];    else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];    else if (!empty($_SERVER["REMOTE_ADDR"]))        $ip = $_SERVER["REMOTE_ADDR"];    else        $ip = "err";    return $ip;}echo "IP: " . getClientIp() . "";echo "referer: " . $_SERVER["HTTP_REFERER"];用1.php 请求 2.php,输出结果:IP:8.8.8.8  referer:http://www.hzhuti.com
伪造成功,这是不是给采集的朋友提供了很好的换IP的方案!!当然防被刷的朋友也要注意了
PHP中的CURL函数库(Client URL Library Function)
curl_close — 关闭一个curl会话curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数curl_errno — 返回一个包含当前会话错误信息的数字编号curl_error — 返回一个包含当前会话错误信息的字符串curl_exec — 执行一个curl会话curl_getinfo — 获取一个curl连接资源句柄的信息curl_init — 初始化一个curl会话curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源curl_multi_close — 关闭一个批处理句柄资源curl_multi_exec — 解析一个curl批处理句柄curl_multi_getcontent — 返回获取的输出的文本流curl_multi_info_read — 获取当前解析的curl的相关传输信息curl_multi_init — 初始化一个curl批处理句柄资源curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"curl_setopt_array — 以数组的形式为一个curl设置会话参数curl_setopt — 为一个curl设置会话参数curl_version — 获取curl相关的版本信息
curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。
---------------------------------------------相关阅读--------------------------------------------------------
PHP世界不算漏洞的漏洞 - 你永远获得不到我的真实IP
我粗略列举6种PHP业内、国际各大开源系统获取用户真实IP的案例(包括Magento Zencart Zend Framework Yii...国内的就不提了吧!通杀!):
PHP获取用户真实IP方法1:
10
11
12
13
14
15
16
17
18
<?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:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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:
10
11
12
13
14
15
<?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方法后,发现有个共同规律,主要核心就是
HTTP_CLIENT_IPHTTP_X_FORWARDED_FORREMOTE_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%系统
GoverChan
关注
关注
点赞
15
收藏
打赏
评论
获取真实IP的方法,以及伪造IP的例子代码
内容提要:这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它……  获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.getIpfunction getIp...
复制链接
扫一扫
专栏目录
构造HTTP请求Header实现“伪造来源IP”(重在原理)
我的E家
12-17
3万+
转载自:
http://zhangxugg-163-com.iteye.com/blog/1663687
http://www.walkerjava.com/index.php?m=blog&f=view&id=10
1. 伪造原理
在阅读本文前,大家要有一个概念,在实现正常的TCP/IP 双方通信情况下,是无法伪造来源 IP 的,也就是说,在 TCP/IP 协议中
伪造来源IP欺骗
技术博客
03-24
4037
一,获取客户端IP目的
一般对于访问比较频繁的接口,服务端都会根据IP做接口访问频率限制;例如,对于给定的IP,1分钟只能调用接口100次,频率过快服务端可以针对该IP进行特殊处理,比如接口直接调用失败或加入IP黑名单列表等操作。那么,对于服务端来说,能够获取客户端真实的IP信息,是至关重要的。
二,如何伪造来源IP,欺骗服务端
#获取客户端I...
评论 1
您还未登录,请先
登录
后发表或查看评论
kubernetes中ingress控制器traefik获取真实客户源IP
最新发布
rendongxingzhe的博客
11-19
497
traefik获取真实客户源IP
负载均衡获得真实源IP的6种方法
weixin_33721344的博客
11-17
945
除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种。本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配置。负载均衡获得真实IP的方法有很多种,将形成专题文章。本文为第一篇,主要做介绍和优劣对比。小慢哥的原创文章,欢迎转载获得真实IP的6种方法当数据包从负载均衡器往后端转发时候,真实源IP可在L3、L4、L7实现,并且分别有2种方法可以获得...
关于人脸识别的最全研究!
人工智能学家
09-20
2138
来源:北京物联网智能技术应用协会  本文内容涵盖人脸识别发展历程、市场研究、核心技术、商业应用以及产业落地、个人看法等干货研究。注意,本文干货满满,约有2万7千字,强烈建...
渗透测试面试题
热门推荐
千寻的博客
12-31
11万+
渗透测试面试题
一.思路流程
1.信息收集
服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
网站指纹识别(包括,cms,cdn,证书等),dns记录
whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
子域名收集,旁站,C段等
google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等
扫描网站目录结构,爆后台,网站banner,测试文件,...
伪造IP包,禁止TCP连接
11-15
1628
大家是否想过在局域网内如何禁止别人访问web server,pop3,ftp等。那么如何禁止呢?大家都知道TCP是面向连接的,连接时有三次握手,之后才能确认连接成功。那么我们就应该能在第一次握手之后伪造一个服务方的握手返回,从而达到TCP连接不成功,无法访问某端口。程序如下: void DeCodeIP(buf,iBufSize) //解析侦听到的IP数据包{IPHEADER * pIPhdr;T
伪造IP地址进行SYN洪水攻击
HAHAHAHA1314521的博客
07-20
998
在写代码之前我们需要现来理解下TCP/IP的三次握手以及TCP/IP的包头信息,由此我们可以了解SYN洪水攻击的原理。
1.TCP/IP三次握手及SYN攻击原理
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PS...
java获取用户IP的方法
飞翔的肥仔
10-12
598
public static final String UNKNOWN_IP="unknown";
/**
* 获取当前request的真实ip
* @param request
* @return
*/
public static String getIpAddress(HttpServletRequest request...
JMeter之IP欺骗技术(模拟不同的IP地址并发请求)
村东头老杨的博客
04-22
2557
我们在做压力测试时,有这样的场景和需求,希望模拟的批量用户来自不同的IP地址。如果小伙伴用LR是很容易实现的,用IP欺骗即可实现。那么对于用JMeter小伙伴是不是就不能享受这一技术了呢,答案是否定的,JMeter一样可以实现,下面就来分享JMeter IP欺骗技术的实现及过程
第一步:在负载机上绑定IP地址
说明:负载机需要是固定的IP地址
在负载机的网络连接里,找到你正在使用的连...
墨者网络安全——ip地址伪造
weixin_53980169的博客
07-22
1939
墨者靶场测试之ip地址伪造
国内人脸识别第一案,我们来谈谈国外法规和隐私保护技术
数据派THU
11-08
8068
一、屡次被推上舆论风口浪尖的人脸识别事件最近,又发生了两起关于人脸识别的热议事件。一是杭州野生动物世界“为了方便消费者快速入园”,在今年 10 月将年卡系统从“指纹入...
伪造IP及获取客户端真实IP地址
weixin_30709061的博客
05-22
810
Fiddler支持自定义规则,可以实现对HTTP请求数据发送给Server前或HTTP应答数据发送给浏览器前进行修改。下面的例子将演示如何向所有HTTP请求数据中增加一个头。1)打开Fiddler,点击Rules > Customize Rules。会提示安装Fiddler ScriptEditor。2)打开安装好的Fiddler ScriptEditor,找到 OnBeforeReques...
获得用户真实IP的四种方法
Radic Feng的专栏
08-25
2万+
在web开发时有时需要验证用户的真实IP,在Java开发中,使用request.getRemoteAddr() 得到的可能是request路经的代理(Proxy)或者负载平衡器(Load Balancer)的IP,而并非用户的真实IP。一般地,Proxy或者Load Balanc
python爬虫之伪造报头来采集网页信息
DS的博客
08-10
2360
python伪造报头来采集网页信息
记一次-X-Real-IP、X-Forwarded-For 防止伪造
e_shi_yi_p的博客
11-13
1191
背景:只有一层nginx,获取真实ip。防止伪造
nginx 配置
server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
#ssl_certificate cert.pem;
ssl_certificate_key server.key;
#ssl_certificate_ke
百度主页用php,php使用服务器进行远程抓取百度网页内容
weixin_39687881的博客
03-10
51
php使用服务器进行远程抓取百度网页内容error_reporting(E_ALL^E_NOTICE^E_WARNING);$useragent= $_SERVER['HTTP_USER_AGENT'];//获取客户端ipfunction getip() {$unknown = 'unknown';if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) &&...
ctf php代码审计 绕过,Bugku CTF 之代码审计解题记录
weixin_35870524的博客
04-11
490
前言此笔记为在Bugku CTF平台上做代码审计题目的过程,也算是一篇wp吧extract变量覆盖extract($_GET):$_GET:表示在传递参数时,URL通过get的方式传参,传输的数据以数组的形式封装在$_GET中extract():从数组中将变量导入到当前的符号表。该函数使用数组键名作为变量名,数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量file_ge...
获取客户端真实ip的方法
yuubeka的博客
05-28
1439
为什么需要获取客户端真实ip
ip地址是按地域分布的,服务器获取到客户端ip后可以做流量统计和分析,服务器也可以针对客户端ip做一些定制化的功能,比如限流和黑白名单。
网络环境十分复杂,客户端发出的一个请求至少要经过cdn和负载均衡后才可以到达服务器。报文经过负载均衡的时候往往会做FNAT(lvs的一种转发模式,被普遍用于各种厂商的lb,该转发模式会对所有报文做源地址转换和目的地址转换),所以报文经过lb后,源地址就被删除了,这样服务器看到的源地址都是lb的地址,无法获取到客户端的真实ip了。
.....
获取客户端真实 IP
zhangxin09的专栏
05-23
1256
Nginx反向代理后,Servlet应用通过request.getRemoteAddr()取到的IP是Nginx的IP地址,并非客户端真实IP,通过request.getRequestURL()获取的域名、协议、端口都是Nginx访问Web应用时的域名、协议、端口,而非客户端浏览器地址栏上的真实域名、协议、端口
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:Age of Ai
设计师:meimeiellie
返回首页
GoverChan
CSDN认证博客专家
CSDN认证企业博客
码龄9年
暂无认证
297
原创
3万+
周排名
156万+
总排名
60万+
访问
等级
6074
积分
112
粉丝
179
获赞
46
评论
525
收藏
私信
关注
热门文章
Linux 软件安装到哪里合适,目录详解
54269
获取真实IP的方法,以及伪造IP的例子代码
29530
php 生成唯一订单号4种方法
27181
Linux Vsftpd 连接超时解决方法(被动模式)
23876
laravel错误1071 Specified key was too long; max key length is 1000 bytes
20886
分类专栏
virtualBox
docker
5篇
抓包
CI/CD
1篇
中医养生
1篇
思维图
1篇
文件系统
1篇
python
2篇
GO
3篇
tomcat
2篇
redis
2篇
PHP
94篇
php框架
8篇
php安全
12篇
Linux
83篇
Nginx
18篇
ftp
8篇
Mysql
31篇
网络协议
12篇
JavaScript
39篇
Css
5篇
前端框架
7篇
包管理工具/版本管理工具
11篇
正则
4篇
面试
4篇
其它
12篇
编辑器
11篇
数学与算法
7篇
压力测试
4篇
网站-工具
4篇
JAVA
1篇
大数据
4篇
虚拟机
1篇
最新评论
五脏六腑是怎么运作的?五脏六腑是怎么运作的?
2201_75290311:
感恩感谢大师的爱心分享 !
curl和wget的区别和使用
计算机萌新。:
为啥使用curl下载的图片显示损坏了,打不开
基于 GIN 框架的六种热加载(golang 热加载 / 热部署
学的像个弟弟:
你好! 我在使用 gin run main.go后 产生报错
Get-ComputerInfo : 找不到接受实际参数“main.go”的位置形式参数。
所在位置 行:1 字符: 1
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ComputerInfo],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetComputerInfoCommand
五脏六腑是怎么运作的?五脏六腑是怎么运作的?
Ethan-bigdata:
这是哪本书呀
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
docker访问宿主机127.0.0.1
fiddler常用设置说明
谷歌远程调试
2021年22篇
2020年25篇
2019年34篇
2018年58篇
2017年71篇
2016年39篇
2015年89篇
目录
目录
分类专栏
virtualBox
docker
5篇
抓包
CI/CD
1篇
中医养生
1篇
思维图
1篇
文件系统
1篇
python
2篇
GO
3篇
tomcat
2篇
redis
2篇
PHP
94篇
php框架
8篇
php安全
12篇
Linux
83篇
Nginx
18篇
ftp
8篇
Mysql
31篇
网络协议
12篇
JavaScript
39篇
Css
5篇
前端框架
7篇
包管理工具/版本管理工具
11篇
正则
4篇
面试
4篇
其它
12篇
编辑器
11篇
数学与算法
7篇
压力测试
4篇
网站-工具
4篇
JAVA
1篇
大数据
4篇
虚拟机
1篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
GoverChan
你的点滴的支持是我最大的动力!
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值