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头信息中。
查看全文
相关阅读:
eclipse异常关闭,无法启动tomcat解决办法
VM下,装centos7系统,配置nginx的问题
用php代码统计数据库中符合条件的行数
css中的相对定位与绝对定位的区别
URL地址理解
开机直接显示用户被锁定点一下就黑屏
css3 三个属性:-webkit-tap-highlight-color,-webkit-touch-callout,-webkit-user-select
jquery.flipster.js 3D旋转木马效果
css3 position:sticky 固定导航平滑过渡
iframe跨域获取父页面url
原文地址:https://www.cnblogs.com/yukaizhao/p/client_real_ip.html
最新文章
LeetCode: Longest Substring Without Repeating Characters
LeetCode:Longest Consecutive Sequence
LeetCode:Longest Common Prefix
LeetCode:Longest Palindromic Substring
LeetCode:Palindrome Number
LeetCode:Container With Most Water
redis集群搭建 sentinal
redis主从复制
CentOS初始化
redis安装
热门文章
(5)树莓派安装下载工具aria
(6)树莓派安装数据库
(2)树莓派挂载外部硬盘
(3)树莓派安装samba共享服务
(4)树莓派内网穿透 frp
(1)树莓派安装
mysql中左连接后,最终的记录数大于左边表的记录分析
redis安装与配置
No Spring WebApplicationInitializer types detected on classpath异常的解决
流的使用注意事项
Copyright © 2011-2022 走看看