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头信息中。
查看全文
相关阅读:
Java Web 项目学习(二) 发送邮件
Java Web 项目学习(一) 项目调试与版本控制
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement
拓扑排序
Java中的<< 和 >> 和 >>>
Java Web 项目学习(一) Spring MVC 入门
Java Web 项目学习(一) Spring 入门
oracleDBA-D1
Linux运维(3年以内)
数据库DBA(3年以内需求)
原文地址:https://www.cnblogs.com/yukaizhao/p/client_real_ip.html
最新文章
mpvue
利用jquery encoder解决XSS脚本注入所产生的问题
我爱这土地
java环境变量以及jdk、jre、jvm
java关于压缩包的处理,我这里贴出三中格式的(zip,rar,tar)解压方法(目前只用到解压,所以压缩过多研究)。
Java 中文乱码问题总结
java解析xml的三种方法
面朝大海,春暖花开 ----海子
Tomcat服务器配置以及相关配置文件介绍
Tomcat下conf下server.xml的文件配置信息
热门文章
php curl方法
bug小记
css3----画半圆弧线
css基础知识之css选择器
在freecodecamp遇到的题(一)
php上传图片后,如果图片大于50kb则进行压缩
用phpmyadmin删除主键
h5+php实现图片上传
input只能输入数字并限制长度
Java Web 项目学习(二) 会话管理
Copyright © 2011-2022 走看看