ASP.NET获取客户端和服务器端硬盘序列号

2012-01-11 13:01:38 作者: 所属分类:Web前端 阅读:583 评论:3

标签:

ASP.NET获取服务器端序列号,可以使用ManagementClass类来获取,当然也可以使用Win32API来获取;但是想要获取客户端硬盘信息,则必须通过ActiveX控件方式,没办法,想要获取客户端的东西,都被认为是不安全的。下面就分享下相关的代码,以C盘为例:

服务器端

代码1:

Code

  1. string strHardDiskID = "";  
  2.  
  3. ManagementClass mc = new ManagementClass("win32_logicaldisk");  
  4. ManagementObjectCollection moc = mc.GetInstances();  
  5. foreach (ManagementObject mo in moc)  
  6. {  
  7.     PropertyDataCollection co = mo.Properties;  
  8.     foreach (PropertyData po in co)  
  9.     {  
  10.         object o = po;  
  11.     }  
  12.  
  13.     if (mo["DeviceID"].ToString() == "C:")  
  14.     {  
  15.         strHardDiskID = mo["VolumeSerialNumber"].ToString();  
  16.     }  
  17.     //strHardDiskID = (string)mo.Properties["Model"].Value;  

代码2:

Code

  1. ManagementObject mo = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");  
  2. mo.Get();  
  3.  
  4. strHardDiskID = mo.GetPropertyValue("VolumeSerialNumber").ToString();  

代码3:

Code

  1. [DllImport("kernel32.dll")]  
  2. private static extern int GetVolumeInformation(string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, ref int lpVolumeSerialNumber, int lpMaximumComponentLength, int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize);  
  3.  
  4. public static string GetClientHardDiskID()  
  5. {  
  6.     const int MAX_FILENAME_LEN = 256;  
  7.     int retVal = 0;  
  8.     int a = 0;  
  9.     int b = 0;  
  10.     string str1 = null;  
  11.     string str2 = null;  
  12.     string drvID = "C";  
  13.  
  14.     int i = GetVolumeInformation(drvID + @":\", str1, MAX_FILENAME_LEN, ref retVal, a, b, str2, MAX_FILENAME_LEN);  
  15.  
  16.     return retVal.ToString("x").ToUpper();  

上述三段代码,效果一样,随便用哪种方法都可以。

客户端采用JS方式获取。

» 郑重声明:本文由IT伯伯发布,所有内容仅代表个人观点。版权归IT伯伯IT伯伯共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
【上一篇】
【下一篇】

目前有 3 条留言 其中:访客:3 条, 博主:0 条

  1. 徐州搬家公司 CHINA Mozilla Firefox Windows : 2012年01月12日14:34:29 沙发 @回复 回复

    这个我就看不懂了,还是顶IT伯伯 :mrgreen:

给我留言


页面载入中..

展开