C#识别客户端的唯一性,永久性的历史难题! 1、直接读取MAC,C#办不到2、activeX,用户安装嫌麻烦3、IP,范围太广目前针对有些网站实行的访问限制,估计实行的2(银行)、3(商业性网站) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 MAC为什么C#做不到?另外你可以考虑CPU +MAC来解决 可以考虑CPU +MAC来解决,OK!!!!!!!!! 你在C#版来问这个问题,你也要说清楚是BS结构对不。BS结构是取不到,但是CS肯定是可以的。 能,前提是对方的浏览器是IE且安全设置很低.用js/vbs访问wmi能取到很多信息. bs基本無法識別cs完全可以得到 intel 的cup 还好 吧 AMD的cpu 咋办 是的,bs是实现不了,不可能让用户去设置IE级别,安全性问题可是大问题 哦,验证IP和MAC不能确定唯一性吗??? 必须使用插件技术,即ActiveX,在访问Web时下载相关的ActiveX控件,在ActiveX中进行验证,因为网页无法获取系统底层的东西(否则系统没有安全性了) c#获取MACusing 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 { } } } } 1、直接读取MAC,C#办不到 //是做得到的2、activeX,用户安装嫌麻烦 //3、IP,范围太广 //这个不太合适4、用USBKey来限制;目前针对有些网站实行的访问限制,估计实行的2(银行)、3(商业性网站) C# TreeView控件增加节点目录 c#自定义控件嵌套控件问题 C#中Bitmap和DrawImage的用法,请过来帮我看看啊!! 求助~~使用GDAL中的OGR读取MIF文件的问题 C# 多线程问题 200 分求助? 如何使用checklist动态添加控件到table,并且要在textbox加上选中的内容 C# 代码求解释,谢谢 请问C#中的math.floor和math.pow在VB6。0中如何实现? 请大家给几个网络编程方面的专业网址 如何在后台弹出窗体(窗口置顶)? [==========]论坛 提示框 样式 用什么控件 方便实现
你在C#版来问这个问题,你也要说清楚是BS结构对不。
BS结构是取不到,但是CS肯定是可以的。
用js/vbs访问wmi能取到很多信息.
intel 的cup 还好 吧 AMD的cpu 咋办
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
{
}
}
}
}
2、activeX,用户安装嫌麻烦 //
3、IP,范围太广 //这个不太合适
4、用USBKey来限制;目前针对有些网站实行的访问限制,估计实行的2(银行)、3(商业性网站)