zoukankan
html css js c++ java
在内网服务器中获得真正的客户端ip的方法
如下代码:
/**/
///
<summary>
///
RealIP 的摘要说明:
///
获得用户的真实ip,由于squidserver的原因直接取到的ip是内网ip
///
</summary>
abstract
public
class
RealIP
{
const
string
HEADER_KEY_IP
=
"
X-Forwarded-For
"
;
/**/
///
<summary>
///
真实ip
///
</summary>
public
static
string
Value
{
get
{
System.Web.HttpRequest request
=
System.Web.HttpContext.Current.Request;
string
ip
=
string
.Empty;
string
ipHeader
=
request.Headers[HEADER_KEY_IP];
if
(
!
string
.IsNullOrEmpty(ipHeader))
{
string
[] IPs
=
ipHeader.Split(
'
,
'
);
foreach
(
string
ipItem
in
IPs)
{
if
((
!
string
.IsNullOrEmpty(ipItem))
&&
(
!
IsLocalIP(ipItem)))
{
ip
=
ipItem;
break
;
}
}
}
if
(ip
==
string
.Empty)ip
=
request.UserHostAddress;
return
ip;
}
}
static
bool
IsLocalIP(
string
ip)
{
return
ip.StartsWith(
"
192.168.
"
)
||
ip.StartsWith(
"
172.16.
"
)
||
ip.StartsWith(
"
10.
"
);
}
}
其原理就是局域网内的服务器,向真实real server转发请求时,将客户端用户的真实ip放到了Http头信息中。
查看全文
相关阅读:
deque-size
deque-size
deque-resize
Android4.4——SurfaceFlinger启动
关于linux signal 6 (SIGABRT)
(OK) 编译ANDROID
compile android: depmod: ERROR: Found 2 modules in dependency cycles!
Fedora 25正式发布:工作站版默认启用Wayland显示服务器
running ANDROID
(3/4 OK) 在VirtualBox中运行 cm-13-kiwi (华为 荣耀 5X)
原文地址:https://www.cnblogs.com/yukaizhao/p/client_real_ip.html
最新文章
BZOJ3139/BZOJ1306 HNOI2013比赛/CQOI2009循环赛(搜索)
BZOJ4011 HNOI2015落忆枫音(动态规划+拓扑排序)
BZOJ3997 TJOI2015组合数学(动态规划)
堆叠 解题报告
洛谷 P2597 [ZJOI2012]灾难 解题报告
洛谷 P2173 [ZJOI2012]网络 解题报告
洛谷 P4171 [JSOI2010]满汉全席 解题报告
2-sat 学习笔记
洛谷 P2312 解方程 解题报告
洛谷 P2827 蚯蚓 解题报告
热门文章
洛谷 P2168 [NOI2015]荷马史诗 解题报告
安徽师大附中%你赛day9 T2 富 解题报告
洛谷 P1502 窗口的星星 解题报告
list-back
list-begin
list-begin
list-assign
list-assign
deque-swap
deque-swap
Copyright © 2011-2022 走看看