`

ASP.NET 获得客户端IP地址

    博客分类:
  • .Net
c# 
阅读更多
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
 
 
    /// <summary>
    /// 判断是否是IP地址格式 0.0.0.0
    /// </summary>
    /// <param name="str1">待判断的IP地址</param>
    /// <returns>true or false</returns>
    public static bool IsIPAddress(string str1)
    {
        if (str1 == null || str1 == string.Empty || str1.Length < 7 || str1.Length > 15) return false;
        string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
        Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
        return regex.IsMatch(str1);
    }
 
    /// <summary> 
    /// 取得客户端真实IP。如果有代理则取第一个非内网地址 
    /// </summary> 
    public static string IPAddress
    {
        get
        {
            string result = String.Empty;
            result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (result != null && result != String.Empty)
            {
                //可能有代理 
                if (result.IndexOf(".") == -1)    //没有“.”肯定是非IPv4格式 
                    result = null;
                else
                {
                    if (result.IndexOf(",") != -1)
                    {
                        //有“,”,估计多个代理。取第一个不是内网的IP。 
                        result = result.Replace(" ", "").Replace("'", "");
                        string[] temparyip = result.Split(",;".ToCharArray());
                        for (int i = 0; i < temparyip.Length; i++)
                        {
                            if (IsIPAddress(temparyip[i])
                                && temparyip[i].Substring(0, 3) != "10."
                                && temparyip[i].Substring(0, 7) != "192.168"
                                && temparyip[i].Substring(0, 7) != "172.16.")
                            {
                                return temparyip[i];    //找到不是内网的地址 
                            }
                        }
                    }
                    else if (IsIPAddress(result)) //代理即是IP格式 
                        return result;
                    else
                        result = null;    //代理中的内容 非IP,取IP 
                }
            }
            string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
 
            if (null == result || result == String.Empty)
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            if (result == null || result == String.Empty)
                result = HttpContext.Current.Request.UserHostAddress;
            return result;
        }
    }
分享到:
评论

相关推荐

    ASP.NET获取客户端IP地址_系统版本_浏览器版本

    在ASP.NET中,获取客户端IP地址是通过`HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]`来实现的。然而,当用户通过代理服务器访问时,这个方法可能不会返回实际的客户端IP,而是返回代理服务器的IP。...

    asp.net获取客户端IP-用户名等信息

    在ASP.NET开发中,了解如何获取...总之,在ASP.NET中获取客户端IP地址和用户名是通过利用内置的对象和方法,或者自定义逻辑来实现的。理解这些基本原理和技巧对于开发具有用户追踪和个性化功能的Web应用至关重要。

    asp.net获取客户端IP用户名等信息

    #### 一、获取客户端IP地址 在ASP.NET中,获取客户端的IP地址是常见的需求之一,这通常用于日志记录、安全控制或者地理位置定位等功能。 1. **通过`Page.Request.UserHostAddress`** 这是最简单直接的方式,它会...

    asp.net获取(客户端)MAC地址实例

    在给定的场景中,我们关注的是如何在ASP.NET环境中获取客户端的MAC(物理)地址。MAC地址是网络设备如计算机、路由器等在网络层的唯一标识,通常在局域网(LAN)中使用。 在ASP.NET中获取客户端MAC地址是一项挑战,...

    .net获取客户端主机名和ip地址

    4. **Page.Request.UserHostAddress**:返回客户端IP地址。 ```csharp string clientIPAddress = Page.Request.UserHostAddress; ``` 这些方法简单易用,适用于大多数情况下的客户端信息获取。 #### 二、使用...

    ASP.NET 获取客户端IP和MAC地址的程序

    获取客户端IP地址 在ASP.NET中,可以通过`HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]`来获取客户端的IP地址。这个值主要用于处理通过代理服务器转发的请求。如果该变量为空或者不存在,...

    asp.net 获取客户端ip和mac地址

    asp.net 获取客户端ip和mac地址

    asp.net根据客户端IP地址自动调整到网站分站地址

    在ASP.NET中,可以通过`HttpRequest`对象的`UserHostAddress`属性来获取用户的IP地址。例如: ```csharp string clientIP = HttpContext.Current.Request.UserHostAddress; ``` 接下来,为了判断IP地址的区域,...

    asp.net获取客户端mac地址

    在ASP.NET中,获取客户端MAC(Media Access Control)地址是一项常见的需求,特别是在网络管理、设备认证或者特定的安全应用场景中。MAC地址是网络设备的物理地址,用于标识连接到网络的设备。然而,由于HTTP协议的...

    asp.net_web_获取客户端IP和MAC地址

    总的来说,获取客户端IP地址在ASP.NET中相对简单,而获取MAC地址则涉及更复杂的网络环境和用户隐私问题,通常不直接在Web应用中操作。开发者应遵循最小权限原则和尊重用户隐私,避免不必要的数据收集。

    asp.net得到本机ip地址和Mac地址

    - `REMOTE_ADDR`:这个环境变量包含的是连接服务器的客户端IP地址,适用于直接连接到服务器的情况。 - `UserHostAddress`:这个属性返回客户端计算机的IP地址,适用于Web服务。 #### 二、获取本机MAC地址 1. **...

    asp.net获取客户端的MAC地址

     } }}在ASP.NET中获取客户端的MAC地址,通常是因为在某些场景下需要更精确地识别用户,例如防止重复投票或者限制特定设备的访问。然而,需要注意的是,由于浏览器的安全限制,直接通过HTTP协议是无法直接获取到...

    ASP.NET 获取客户端IP方法

    在***开发中,获取客户端IP地址是一个基本需求,尤其在我们需要记录用户访问日志、进行安全控制或实现地理位置相关的功能时。由于***可能部署在多层网络中,例如有负载均衡器或者代理服务器,所以获取真实的客户端IP...

    asp.net获得用户IP和MAC地址的方法

    给定的代码片段展示了如何通过ASP.NET页面内的JScript脚本来调用WMI服务并获取MAC地址、IP地址以及DNS主机名。具体步骤如下: - 创建`locator`对象用于连接WMI服务。 - 使用`ConnectServer()`方法建立连接。 -...

    asp.net获取客户端、服务器端mac和ip地址

    在ASP.NET中,获取客户端IP地址相对简单,可以使用`Request.UserHostAddress`属性。这个属性会返回HTTP请求头部的“X-Forwarded-For”或“REMOTE_ADDR”,前者优先,后者是默认值,这两个头信息通常包含客户端的公共...

    C#程序设计-3期(KC008) KC008110200019_如何在ASP.NET中获得客户端IP地址.docx

    总之,在ASP.NET中获取客户端IP地址主要依赖于`HttpRequest`对象的`UserHostAddress`属性,以及可能需要考虑的`HTTP_X_FORWARDED_FOR`头字段。理解这些概念对于开发涉及用户定位或行为追踪的ASP.NET应用至关重要。

    ASPdotnet获得客户端的IP

    在ASP.NET开发中,获取客户端IP地址是一项常见的需求,这对于实现如访问统计、地理位置定位、安全防护等功能至关重要。本文将详细讲解如何在ASP.NET中获取客户端的IP地址,并结合提供的资源进行讨论。 首先,我们...

    ASP.NET获取本地IP和MAC地址

    在ASP.NET开发中,有时我们需要获取服务器或者客户端的IP地址和MAC...获取本地IP和MAC地址相对简单,而获取客户端IP地址需要考虑代理情况,获取客户端MAC地址则受到限制。在实际开发中,要根据具体需求选择合适的方法。

    asp.net 获取客户端浏览器访问的IP地址的实例代码

    本文介绍了asp.net 获取客户端浏览器访问的IP地址的实例代码,分享给大家,自己也留个笔记 1、js方法 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=UTF-8 /&gt; &lt;title&gt;Document&lt;/...

Global site tag (gtag.js) - Google Analytics