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

ASP.NET获取客户端IP地址


通常我们都通过下面的代码获得IP:
   string ip =System.Web.HttpContext.Current.Request.UserHostAddress;
    或 string ip =System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
REMOTE_ADDR 说明:
访问客户端的 IP 地址。
此项信息用户不可以修改。
如果真的给改了的话,你也和服务器连接不了了,服务器就是按照这个来与客户端建立连接并进行通讯的。实际我测试修改这个 ServerVariables , 一点效果都没有。仍然获得是实际的值。
但如果用户使用了代理服务器,上述代码获得的是代理服务器的IP地址;如果用户使用了多个代理服务器,则是到达服务器的最后一个代理服务器的IP地址。
如何绕过代理服务器获得用户真实的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"];
 }
Request.ServerVariables["HTTP_VIA"] ,ServerVariables["HTTP_X_FORWARDED_FOR"],Request.ServerVariables["REMOTE_ADDR"]的值分下面几种情况:
一、没有使用代理服务器的情况:
      REMOTE_ADDR = 用户的 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
      REMOTE_ADDR = 最后一个代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 用户的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
   这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。
三、使用普通匿名代理服务器的情况:Anonymous Proxies
 &n


相关文档:

新手跟着学Asp.net MVC2 View

前面我们说过了 控制器(controller) 和方法(action)
本次要说的就是 View以及和控制器(controller)、方法(action)之间的关系;
大家都知道 MVC中的 V 就是View 的意思,就是 呈现给用户的界面,以往的asp.net项目中叫 webform,以前做asp.net的时候就是在工具箱里面拖控件出来,
然后简单的排版一下就ok了,大多数用的服 ......

[ASP.NET] 自定义GridView分页


1. aspx页面端代码:
<div class="gv-footer">
          <asp:LinkButton ID="btFirstPage" runat="server" CommandArgument="first" OnClick ="PagerButton_Click">首页</asp:LinkButton>
        <asp:Lin ......

asp.net 取得用户控件里的属性或控件

最近在用用户控件时,引用户控件的页面有时候会和用户控件进行数据的交互,网上好像很多人不知道何获取
写个例子说明一下
 
取得用户控件里面的控件并进行赋值
用户控件aspx页代码
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="HeadPanel.ascx.cs" Inherits="HeadPanel" %>
  & ......

asp.net Gridview TextBox 回车的问题怎么解决?

首先建立控件GridView1,注意噢
页面EnableEventValidation="false"必须的。
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="P ......

ASP.net开发系列之.net的世界

     在.net的世界里到底有什么呢?第一个是.net框架(.net Framework),现在最新的已经是4.0版本了,呵呵,但是我的netcms用的是2.0版本。第二个是.net集成开发环境,也就是我们平常看到的visual studio .net 2003 (2005 2008等)。是用来写程序和调试程序用的。当然,如果你够牛逼,你也可以用记事本 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号