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头信息中。
查看全文
相关阅读:
Centos7更改网卡名为eth0
Centos7部署Open-Falcon监控
centos6.x一键15项系统优化(转自努力哥)
运维题目(十三)
运维题目(十二)
Mongodb的学习整理(下)
Centos7下yum安装mongodb
浏览器缓存
控制反转
js setTimeOut()
原文地址:https://www.cnblogs.com/yukaizhao/p/client_real_ip.html
最新文章
[SwiftUI教程]3、建立列表和导航
[SwiftUI教程]1、SwiftUI介绍
[SwiftUI教程]2、创建和组合视图
[Swift]LeetCode1096. 花括号展开 II | Brace Expansion II
[Swift]LeetCode1094. 拼车 | Car Pooling
[Java]LeetCode1095. 山脉数组中查找目标值 | Find in Mountain Array
[Swift]升级iOS13操作指南
转 SecureCRT 使用X11 转发功能打开图形化窗口
PARTITION RANGE ALL 的优化
转 SecureCRT中文乱码解决方法 以及linux 中文支持
热门文章
2个sql 函数dbms_lob.substr 和 wm_concat
转 Oracle Cluster Health Monitor(CHM)简介
oratop
sql 规范
Script to Monitor Current User Activity in the Database
oracle tps
最耗资源的10条sql
mysql的grant权限参数汇总
centos6.6部署mysql mmm高可用架构
centos7刚安装需要的一些基础优化
Copyright © 2011-2022 走看看