有给问题想问一下,就是在页面上有个下载链接,当下载者点击下载的时候,触发记录下载者的IP地址,请高手指点,谢谢

解决方案 »

  1.   


    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
      ManagementObjectCollection nics = mc.GetInstances();  
      foreach (ManagementObject nic in nics)  
      {  
      if (Convert.ToBoolean(nic["ipEnabled"]) == true)  
      {  
      Console.WriteLine((nic["IPAddress"] as String[])[0]);  
        
      }    }
      

  2.   

    string GetIp()   
      {
      string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];   
      if (userIP == null || userIP == "")   
      {   
      userIP = Request.ServerVariables["REMOTE_ADDR"];     }   
      return userIP;   
    }   
      

  3.   

    public static string GetIPAddress()
        {        string user_IP = string.Empty;
            if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
            {
                if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
                {
                    user_IP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                }
                else
                {
                    user_IP = System.Web.HttpContext.Current.Request.UserHostAddress;
                }
            }
            else
            {
                user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
            }
            return user_IP;
        }
     
      

  4.   

    是相同,但是要下载的同时触发获取ip,只访问页面不下载,是不记录ip的
      

  5.   

    /*获取客户端IP地址
             
             */
            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;
                }
            }
            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);
            }
      

  6.   

    他点击下载时你用AJAX执行访问一个后台程序,后台程序中执行这个获取起IP的方法