浏览器最多获得ip、操作系统、浏览器等信息
光根据这些是无法判断电脑唯一性的
我看到qq注册,就是限制每台电脑只能注册2次 ,之后就需要手机验证。我现在也需要做同样的功能,请阁下提点建议。
@静(lion): QQ可能是根据你的外网ip判断的,你看看http://www.cnblogs.com/qingci/archive/2012/10/18/2729246.html
@飞来飞去:还是不知道腾讯是如何唯一识别一台电脑,进行注册次数限制的。
你可以根据你的外网IP判定,也就是你开宽带的唯一帐号, 还有就是根据你的电脑硬件信息加一些操作系统的信息进行混合判定。
电脑硬件信息,和操作系统信息如何获取?
@静(lion):
1 @静(lion): 2 public class GetUserInfo 3 { 4 public static string GetCPU() 5 { 6 string cpuInfo = "";//cpu序列号 7 ManagementClass cimobject = new ManagementClass("Win32_Processor"); 8 ManagementObjectCollection moc = cimobject.GetInstances(); 9 foreach (ManagementObject mo in moc) 10 { 11 cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 12 // Response.Write ("cpu序列号:"+cpuInfo.ToString ()); 13 } 14 return cpuInfo; 15 } 16 17 public static string GetHardDisk() 18 { 19 string HDid = string.Empty; 20 ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"); 21 ManagementObjectCollection moc1 = cimobject1.GetInstances(); 22 foreach (ManagementObject mo in moc1) 23 { 24 HDid = (string)mo.Properties["Model"].Value; 25 //Response.Write ("硬盘序列号:"+HDid.ToString ()); 26 27 } 28 return HDid; 29 } 30 31 32 public static string GetRealIp() 33 { 34 string ip = ""; 35 try 36 { 37 HttpRequest request = HttpContext.Current.Request; 38 39 if (request.ServerVariables["http_VIA"] != null) 40 { 41 ip = request.ServerVariables["http_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim(); 42 } 43 else 44 { 45 ip = request.UserHostAddress; 46 } 47 } 48 catch (Exception e) 49 { 50 throw e; 51 } 52 53 return ip; 54 } 55 } 56 57 -------------- 58 //获取本地计算机的NetBIos计算机名称 59 this.lblComputerName.Text = SystemInformation.ComputerName.ToString(); 60 //获取本地计算机的IP 61 this.lblComputerIp.Text = GetIP(); 62 //启动方式 63 if(SystemInformation.BootMode.ToString() == "Normal") 64 this.lblStartingMode.Text = "正常启动"; 65 if(SystemInformation.BootMode.ToString() == "FailSafe") 66 this.lblStartingMode.Text = "安全启动"; 67 if(SystemInformation.BootMode.ToString()=="FailSafeWithNetwork") 68 this.lblStartingMode.Text = "通过网络服务启动"; 69 //网络连接 70 if(SystemInformation.Network == true) 71 this.lblComputerNetworkConnect.Text = "已连接"; 72 else 73 this.lblComputerNetworkConnect.Text = "未连接"; 74 //获取本地计算机的当前显示器分辨率 75 this.lblResolutionRatio.Text = SystemInformation.PrimaryMonitorSize.Width.ToString() + "X" + SystemInformation.PrimaryMonitorSize.Height.ToString(); 76 }
@风忆:
这是用你提供的方法,通过局域网内两台机器访问返回的结果,显示的都是服务器的信息。
还要我需要的是web应用的解决方法。
@静(lion): 我提供给你的方法只是给你参考 具体的自己多想想就能出来了。
根据你的电脑硬件信息,比如cpu等的信息
C# 如何获取你说的硬件信息?
@静(lion): 估计可以用windows.managerment.下的一些wim的类库
@nickycookie: 刚在网上看到了,试了下,只能获取到服务器的mac,不能获取客户端的mac。
@静(lion): 可以获取客户端的计算机名
@wydycg: 不可以,也是服务器的机器名!