欢迎光临赵玉开的技术博客
天马行空 无怨无嗔
博客园
首页
新随笔
联系
订阅
管理
随笔 - 99 文章 - 2 评论 - 902 trackbacks - 17
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
转载请保留链接。
我的最新闪存
国家体育场(鸟巢)是建筑史上的令人惊叹之作,杂乱的基础结构组成了一个和谐的整体,正是中国社会的成功写照。
7-18 17:44
与我联系
发短消息
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(12)
给我留言
查看留言
我管理的小组
生活杂谈
Sql Server数据库小组
我参加的小组
每日一句英语
ASP.NET
创业交流
设计模式
项目经理联盟
Visual Studio
.NET 3.x
垂直搜索研究
CLR基础研究小组
我参与的团队
.Net流程管理系统联盟(0/28)
数据库团队(0/200)
我的标签
t-sql
(8)
sql
(8)
performance
(3)
c#
(3)
cte
(2)
function
(2)
sql server
(2)
partition
(1)
index
(1)
cs
(1)
更多
随笔分类
.Net开发经验(40)
c#(6)
sql server(9)
Xml,XPath,Xsd(1)
简单问题(20)
客户端(8)
软件设计(5)
设计模式(1)
生活(15)
数据库(18)
算法,建模(3)
网站管理(2)
随笔档案
2008年7月 (6)
2008年6月 (7)
2008年5月 (19)
2008年4月 (7)
2008年3月 (2)
2008年1月 (1)
2007年12月 (3)
2007年11月 (2)
2007年10月 (1)
2007年9月 (3)
2007年6月 (3)
2007年5月 (6)
2007年4月 (22)
2007年3月 (16)
文章分类
敏捷开发(1)
相册
hehe
最新随笔
1. 如果你的数据库文件只剩下数据文件没有日志文件时,如何附加
2. 必须掌握的八个【cmd 命令行】[转]
3. 2008,属于每一个中国人!
4. 大访问量高性能网站实践
5. CSS关于SEO优化的细节
6. 兰德公司对中国人的评价
7. 在IIS上设置Gzip压缩设置(备忘)
8. 创业思考
9. 屏蔽服务器端包含在文件不存在时报错的错误信息
10. 一生不可错过的五句话
搜索
积分与排名
积分 - 141491
排名 - 243
最新评论
1. re: 如何定义Xsd文件
支持下 收藏了
--雨中漫步的太阳
2. re: 如此高效通用的分页存储过程是带有sql注入漏洞的
@Net205 Blog
这是一个思路吧,where条件通常是多变的。
--玉开
3. re: 如此高效通用的分页存储过程是带有sql注入漏洞的
搜索blog找到这篇老文章,去年的,我说一下我的想法。 --代码中的@strSearch假设为存储过程的参数 按你的代码写的(存在SQL注入的写法) declare @strSearch varcha...
--Net205 Blog
4. re: Js + Css的msn式的popup提示窗口的实现
不知道兼容不兼容firefox
--wbb
5. re: Sql Server2005对t-sql的增强之Cross Apply
very good
--andrew1234567890
阅读排行榜
1. 应用程序权限设计(7277)
2. 三层开发中容易犯的错误(6212)
3. 翻译 一些很酷的.Net技巧(4384)
4. 如此高效通用的分页存储过程是带有sql注入漏洞的(4156)
5. 请大家警惕这个散播木马的网站 www.zzyqr.com,本文简要地分析了它通过网页的传播方式(3836)
评论排行榜
1. 三层开发中容易犯的错误(125)
2. 如此高效通用的分页存储过程是带有sql注入漏洞的(66)
3. for VS. foreach 那个性能更高,为什么,怎么选择(54)
4. 应用程序权限设计(43)
5. 建索引(尤其是主键)时请注意索引列的顺序(41)
60天内阅读排行
1. CSS关于SEO优化的细节(1919)
2. sql server2005对t-sql的增强之在聚合函数的后面使用over关键字(1683)
3. c#农历日历类(466)
4. 使用c#生成高品质小空间的缩略图(309)
5. 兰德公司对中国人的评价(273)
在内网服务器中获得真正的客户端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头信息中。
posted on 2008-05-16 09:40
玉开
阅读(286)
评论(2)
编辑
收藏
所属分类:
.Net开发经验
、
简单问题
、
c#
FeedBack:
#1楼
2008-05-16 14:33
Clark Zheng
HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、REMOTE_ADDR
都需要,因为有那个是可以模拟的
回复
引用
查看
#2楼
[
楼主
]
2008-05-16 16:08
玉开
@Clark Zheng
request.UserHostAddress实质上就是读取http头REMOTE_ADDR;HTTP_CLIENT_IP这个没有见到过。
回复
引用
查看
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-05-16 09:51 编辑过
历史上的今天:
2007-05-16
佛经上一百八十一条做人的道理
另存
打印
所属分类的其他文章:
·
必须掌握的八个【cmd 命令行】[转]
·
在IIS上设置Gzip压缩设置(备忘)
·
屏蔽服务器端包含在文件不存在时报错的错误信息
·
telnet serverip serverport 可以测试服务器端口是否通
·
c#农历日历类
·
使用c#生成高品质小空间的缩略图
·
分布式缓存系统Memcached简介与实践[转]
·
在内网服务器中获得真正的客户端ip的方法
·
页面执行时生成静态文件的方法
·
深拷贝的通用方法
最新IT新闻:
·
金山:360的免费杀毒只能是短期行为
·
江民科技回应杀毒软件免费说 没病不能乱吃药
·
WCG2008中国区总决赛打响
·
新型的编程语言:eC
·
免费的BitDefender能复制卡巴斯基的成功吗?
博客园新闻频道
博客园首页
社区