计算机信息类ComputerInfo

 
using  System;
using  System.Management;
using  System.Net;
using  System.Net.Sockets;
using  System.Text;
using  System.Diagnostics;
using  System.Text.RegularExpressions;

namespace  BaseFunction
{
    
/// <summary>
    
/// 计算机信息类
    
/// </summary>

    
public    class  ComputerInfo
    {
        
private    string  CpuID;
        
private   string  MacAddress;
        
private   string  DiskID;
        
private   string  IpAddress;
        
private   string  LoginUserName;
        
private   string  ComputerName;
        
private   string  SystemType;
        
private   string  TotalPhysicalMemory;  // 单位:M 
         private   static  ComputerInfo _instance;

        
internal   static  ComputerInfo Instance()
        {
            
if  (_instance  ==   null )
                _instance 
=   new  ComputerInfo();
            
return  _instance;
        }

        
internal  ComputerInfo()
        {
            CpuID 
=  GetCpuID();
            MacAddress 
=  GetMacAddress();
            DiskID 
=  GetDiskID();
            IpAddress 
=  GetIPAddress();
            LoginUserName 
=  GetUserName();
            SystemType 
=  GetSystemType();
            TotalPhysicalMemory 
=  GetTotalPhysicalMemory();
            ComputerName 
=  GetComputerName();
        }
        
///   <summary>
        
///  浏览器客户端  获取网卡MAC地址MD5加密串  杨旭东
        
///   </summary>
        
///   <returns></returns>
         public   static   string  GetClientMac()
        {
            
try
            {
              
string  clientIP  = System.Web.HttpContext.Current.Request.UserHostAddress.Trim();
              Int32 idest 
=  API.inet_addr(clientIP);
              Int64 macInfo 
=   new  Int64();
              Int32 length 
=   6 ;
              
int  res  =  API.SendARP(idest,  0 ref  macInfo,  ref  length);
              
string  mac_src  =  macInfo.ToString( " X " );
              
if  ( ! string .IsNullOrEmpty(mac_src)  &&   ! " 0 " .Equals(mac_src))
              {
                  
while  (mac_src.Length  <   12 )
                  {
                      mac_src 
=  mac_src.Insert( 0 " 0 " );
                  }
                  
string  mac_dest  =   string .Empty;
                  
for  ( int  i  =   0 ; i  <   11 ; i ++ )
                  {
                      
if  (i  %   2   ==   0 )
                      {
                          
if  (i  ==   10 )
                              mac_dest 
=  mac_dest.Insert( 0 , mac_src.Substring(i,  2 ));
                          
else
                              mac_dest 
=   " - "   +  mac_dest.Insert( 0 , mac_src.Substring(i,  2 ));
                      }
                  }
                  
return  mac_dest;
              }
            }
            
catch
            {
                
return   " 0 " ;
            }
            
return   " 0 " ;
        }

        
///   <summary>
        
///  获取CPU序列号代码 
        
///   </summary>
        
///   <returns></returns>
       public    static    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
            {
            }

        }

        
///   <summary>
        
///  获取网卡硬件地址 
        
///   </summary>
        
///   <returns></returns>
       public   static   string  GetMacAddress()
        {
            
try
            {
                
// 获取网卡硬件地址 
             return  Mac.GetMacAddress();
                
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }
        }

        
///   <summary>
        
///  获取IP地址(IPv4)
        
///   </summary>
        
///   <returns></returns>
       public   static   string  GetIPAddress()
        {
            
try
            {
                IPAddress[] arrIPAddresses 
=  Dns.GetHostAddresses(Dns.GetHostName());
                
foreach  (IPAddress ip  in  arrIPAddresses)
                {
                    
if  (ip.AddressFamily.Equals(AddressFamily.InterNetwork)) // IPv4
                    {
                        
return  ip.ToString();
                    }
                }
                
return   " unknow " ;
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }

        }

        
///   <summary>
        
///  获取硬盘ID 
        
///   </summary>
        
///   <returns></returns>
       public   static   string  GetDiskID()
        {
            
try
            {
             
return  Win32.GetHddInformation().ModuleNumber;
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }

        }

        
/// <summary>
        
/// 操作系统的登录用户名 
        
/// </summary>
        
/// <returns></returns>
       public   static   string  GetUserName()
        {
            
try
            {
                
byte [] userName  =   new   byte [ 30 ];
                Int32[] length 
=   new  Int32[ 1 ];
                length[
0 =   30 ; // 限定用户名长度
                API.GetUserName(userName, length);
                
return  System.Text.Encoding.ASCII.GetString(userName);
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }

        }


        
/// <summary>
        
///  PC类型 
        
/// </summary>
        
/// <returns></returns>
       public   static   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>
       public   static   string  GetTotalPhysicalMemory()
        {
            
try
            {

                API.MEMORY_INFO memoryInfo 
=   new  API.MEMORY_INFO();
                API.GlobalMemoryStatus(
ref  memoryInfo);
                
return  memoryInfo.dwTotalPhys.ToString();
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }
        }
        
/// <summary>
        
///  获取计算机名称
        
/// </summary>
        
/// <returns></returns>
       public   static   string  GetComputerName()
        {
            
try
            {
                
byte [] computerName  =   new   byte [ 30 ];
                Int32[] length 
=   new  Int32[ 1 ];
                length[
0 =   30 ; // 限定计算机名长度
                API.GetComputerName(computerName,length);
                
return  System.Text.Encoding.ASCII.GetString(computerName);
            }
            
catch
            {
                
return   " unknow " ;
            }
            
finally
            {
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值