using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Management;

///


///Computer 的摘要说明
///

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();
}
public 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
{
}

}
public 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
    {
    }

}
public 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
    {
    }

}

public 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
    {
    }

}

///  
/// 操作系统的登录用户名 
///  
///  
public 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
    {
    }

}

///  
/// PC类型 
///  
///  
public 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
    {
    }

}

///  
/// 物理内存 
///  
///  
public 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
    {
    }
}
///  
///  
///  
///  
public string GetComputerName()
{
    try
    {
        return System.Environment.GetEnvironmentVariable("ComputerName");
    }
    catch
    {
        return "unknow";
    }
    finally
    {
    }
}

}