易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.net 获得客户端的IP

  ASP.net 获得客户端的IP,最常见的是使用下述代码: string user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
对于了解代理服务器情况的人,我们会知道,如果用户使用了代理服务器,上述代码获得的是代理服务器的IP地址;如果用户使用了多个代理服务器,则是到达服务器的最后一个代理服务器的IP地址。
REMOTE_ADDR 说明:
访问客户端的 IP 地址。

此项信息用户不可以修改。

如果真的给改了的话,你也和服务器连接不了了,服务器就是按照这个来与客户端建立连接并进行通讯的。实际我测试修改这个 ServerVariables , 一点效果都没有。仍然获得是实际的值。

另: Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"] 实际是同一个值。
如何绕过代理服务器获得用户真实的IP地址呢? 这时候我们一般是类似如下的代码(这里我简单起见,没有作一些边界判断)
private static string getIp()
{
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
return System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[]{','})[0];
else
return System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
这样就足够了么? 这样是有问题的,HTTP_X_FORWARDED_FOR 、HTTP_VIA 是可以被冒名的。如果正好这里有SQL注入问题的话,那可非常严重了。
下面我们就来具体看HTTP_VIA 和HTTP_X_FORWARDED_FOR 这两个 ServerVariables。
HTTP_VIA
如果有该条信息, 就证明您使用了代理服务器,代理服务器的地址就是后面的数值。
HTTP_X_FORWARDED_FOR
如果有该条信息, 也证明了您使用了代理服务器代理服务器的地址就是后面的数值。
需要注意的,HTTP_X_FORWARDED_FOR  的值,并不一定是只有一个IP地址,下面的信息也是可能的,每行一条记录。下面数据取材于CSDN 实际的数据。

10.194.73.11

unknown, unknown, 211.100.22.30

203.98.182.163, 203.98.182.163, 203.129.72.215

172.16.20.110, 202.116.64.196, 203.81.21.61

10.194.75.83, 10.194.73.11, 10.194.73.11, unknown

192.168.120.57, unknown, unknown, 211.10.10.195

10.2.4.211, 219.141.250.3

3.242.165.168, 218.108.22.164

unk


相关文档:

ASP.NET URL Rewrite. URL重写

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。
  比如浏览器发来请求hostname/101.aspx ,服务器自动将这个请求中定向为http://hostname/list.aspx?id=101。
url重写的优点在于:
    缩短url,隐藏实际路径提高安全性
    易于用户记忆和键入。
 &nbs ......

asp.net 图片处理 获取图片宽度和高度

1.获取图片宽度和高度
    1.您可以使用 System.Drawing.Image 类
    System.Drawing.Image img = System.Drawing.Image.fromFile(Server.MapPath("example.gif"));
int width = img.Width;
int height = img.Height;
img.Dispose();
但是这里我们却不能在导入名称空间后使用 Image& ......

ASP.NET MVC及IIS6.0配置总结

1. config结构
     Framework\Config\Machine.config, 为所有config的根,特别只有它才能具有<processMode>节,该节修改后必须重启IIS方能生效,而其它节的改动,只要一保存,就有效了,这是IIS6的一大进步。
    以下分别是从上往下的几个家族类(为继承关系,这种设计可以大 ......

了解使用 ASP.NET AJAX 进行局部页面更新

了解使用 ASP.NET AJAX 进行局部页面更新
简介
Microsoft的 ASP.NET 技术提供了一个面向对象、事件驱动的编程模型,并将其与已编译代码的优势结合起来。但其服务器端的处理模型仍存在技术本身所固有的几点不足:
进行页面更新需要往返服务器,因此需要页面刷新;
来回往返不会保留 Javascript 或其他客户端技术(如 Ad ......

asp、php、asp.net、jsp介绍及优缺点比较

现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号