1、直接读取MAC,C#办不到
2、activeX,用户安装嫌麻烦
3、IP,范围太广目前针对有些网站实行的访问限制,估计实行的2(银行)、3(商业性网站)

解决方案 »

  1.   

    1 MAC为什么C#做不到?另外你可以考虑CPU +MAC来解决 
      

  2.   

    可以考虑CPU +MAC来解决,OK!!!!!!!!!
      

  3.   


    你在C#版来问这个问题,你也要说清楚是BS结构对不。
    BS结构是取不到,但是CS肯定是可以的。
      

  4.   

    能,前提是对方的浏览器是IE且安全设置很低.
    用js/vbs访问wmi能取到很多信息.
      

  5.   

    bs基本無法識別cs完全可以得到
      

  6.   


    intel 的cup 还好 吧  AMD的cpu 咋办
      

  7.   

    是的,bs是实现不了,不可能让用户去设置IE级别,安全性问题可是大问题
      

  8.   

    哦,验证IP和MAC不能确定唯一性吗???
      

  9.   

    必须使用插件技术,即ActiveX,在访问Web时下载相关的ActiveX控件,在ActiveX中进行验证,因为网页无法获取系统底层的东西(否则系统没有安全性了)
      

  10.   

    c#获取MAC
    using System; 
    using System.Management; 
    namespace Soyee.Comm 

        /// <summary> 
        /// Computer Information 
        /// </summary> 
        public class Computer 
        { 
            public string CpuID; 
            public string MacAddress; 
            public string DiskID; 
            public string IpAddress; 
            public string LoginUserName; 
            public string ComputerName; 
            public string SystemType; 
            public string TotalPhysicalMemory; //单位:M 
            private static Computer _instance; 
            public static Computer Instance() 
            { 
                if (_instance == null) 
                    _instance = new Computer(); 
                return _instance; 
            } 
            public  Computer() 
            { 
                CpuID = GetCpuID(); 
                MacAddress = GetMacAddress(); 
                DiskID = GetDiskID(); 
                IpAddress = GetIPAddress(); 
                LoginUserName = GetUserName(); 
                SystemType = GetSystemType(); 
                TotalPhysicalMemory = GetTotalPhysicalMemory(); 
                ComputerName = GetComputerName(); 
            } 
            string GetCpuID() 
            { 
                try 
                { 
                    //获取CPU序列号代码 
                    string cpuInfo = "";//cpu序列号 
                    ManagementClass mc = new ManagementClass("Win32_Processor"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    { 
                        cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 
                    } 
                    moc = null; 
                    mc = null; 
                    return cpuInfo; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         } 
            string GetMacAddress() 
            { 
                try 
                { 
                    //获取网卡硬件地址 
                    string mac = ""; 
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    { 
                        if ((bool)mo["IPEnabled"] == true) 
                        { 
                            mac = mo["MacAddress"].ToString(); 
                            break; 
                        } 
                    } 
                    moc = null; 
                    mc = null; 
                    return mac; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         } 
            string GetIPAddress() 
            { 
                try 
                { 
                    //获取IP地址 
                    string st = ""; 
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    { 
                        if ((bool)mo["IPEnabled"] == true) 
                        { 
                            //st=mo["IpAddress"].ToString(); 
                            System.Array ar; 
                            ar = (System.Array)(mo.Properties["IpAddress"].Value); 
                            st = ar.GetValue(0).ToString(); 
                            break; 
                        } 
                    } 
                    moc = null; 
                    mc = null; 
                    return st; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         }         string GetDiskID() 
            { 
                try 
                { 
                    //获取硬盘ID 
                    String HDid = ""; 
                    ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    { 
                        HDid = (string)mo.Properties["Model"].Value; 
                    } 
                    moc = null; 
                    mc = null; 
                    return HDid; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         }         /// <summary> 
            /// 操作系统的登录用户名 
            /// </summary> 
            /// <returns></returns> 
            string GetUserName() 
            { 
                try 
                { 
                    string st = ""; 
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    {                     st = mo["UserName"].ToString();                 } 
                    moc = null; 
                    mc = null; 
                    return st; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         } 
            /// <summary> 
            /// PC类型 
            /// </summary> 
            /// <returns></returns> 
            string GetSystemType() 
            { 
                try 
                { 
                    string st = ""; 
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    {                     st = mo["SystemType"].ToString();                 } 
                    moc = null; 
                    mc = null; 
                    return st; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                }         }         /// <summary> 
            /// 物理内存 
            /// </summary> 
            /// <returns></returns> 
            string GetTotalPhysicalMemory() 
            { 
                try 
                {                 string st = ""; 
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
                    ManagementObjectCollection moc = mc.GetInstances(); 
                    foreach (ManagementObject mo in moc) 
                    {                     st = mo["TotalPhysicalMemory"].ToString();                 } 
                    moc = null; 
                    mc = null; 
                    return st; 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                } 
            } 
            /// <summary> 
            ///  
            /// </summary> 
            /// <returns></returns> 
            string GetComputerName() 
            { 
                try 
                { 
                    return System.Environment.GetEnvironmentVariable("ComputerName"); 
                } 
                catch 
                { 
                    return "unknow"; 
                } 
                finally 
                { 
                } 
            } 
        } 

     
      

  11.   

    1、直接读取MAC,C#办不到 //是做得到的
    2、activeX,用户安装嫌麻烦 //
    3、IP,范围太广 //这个不太合适
    4、用USBKey来限制;目前针对有些网站实行的访问限制,估计实行的2(银行)、3(商业性网站)