大家好,今天需要一个服务器环境变量(ServerVariables)的问题,
C# .net 如何区分同ip下的多台主机(包括访问者的电脑的ip,访问路径,端口等)
ip是Request.ServerVariables["REMOTE_ADDR"],路径是Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"]; 端口是Request.ServerVariables["SERVER_PORT"];比如说,现在的ip地址是127.0.1.1, 在这个ip下有3到10台电脑 这些电脑都访问www.1111111.com/1.html这个页面
我应该怎样将这些电脑区分开。

解决方案 »

  1.   

    给个思路公网IP相同,可以取得用户机器名或mac地址区分ASP.NET获取客户端IP及MAC地址文档信息
      

  2.   

    来访者访问www.1111111.com/1.html这个页面,程序自动记录下来访者的ip,主机名,访问路径。并判断多个来访者是否属于同ip下的用户。
      

  3.   


    //客户端IP
            System.Net.IPAddress ip = System.Net.IPAddress.Parse(Request.UserHostAddress);
            System.Net.IPHostEntry iPHostEntry  = Dns.GetHostEntry(ip);
            //客户端机器名
            string clientName = iPHostEntry.HostName;127.0.0.1一个网段的机器名不可能重复,因为可以满足要求的
      

  4.   

    public static string GetCustomerMac(string IP) //para IP is the client's IP  
      {  
      string dirResults="";  
      ProcessStartInfo psi = new ProcessStartInfo();  
      Process proc = new Process();  
      psi.FileName = "nbtstat";  
      psi.RedirectStandardInput = false;  
      psi.RedirectStandardOutput = true;  
      psi.Arguments = "-A " + IP;  
      psi.UseShellExecute = false;  
      proc = Process.Start(psi);  
      dirResults = proc.StandardOutput.ReadToEnd();  
      proc.WaitForExit();  
      dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");  Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?((.)*?)) __MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);  
      Match mc=reg.Match(dirResults+"__MAC");  if(mc.Success)  
      {  
      return mc.Groups["key"].Value;  
      }  
      else  
      {  
      reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);  
      mc=reg.Match(dirResults);  
      if(mc.Success)  
      {  
      return "Host not found!";  
      }  
      else  
      {  
      return "";  
      }  
      }  
      }