MadGoat's Blog

导航

获取系统信息类

using System;
using System.Net;
using System.Management;
using System.Runtime.InteropServices;

namespace SystemInfo
{
 
/// <summary>
 
/// SystemInfo 的摘要说明:获得当前系统的各种信息。主机名,IP地址,MAC地址,网络状态。
 
/// </summary>

 public class systeminfo
 
{

  [DllImport(
"wininet.dll")]
   
private extern static bool InternetGetConnectedState(out int connectionDescription,int reservedValue);

  
/// <summary>
  
/// 获得主机名
  
/// </summary>

  public string GetHostName()
  
{
   
return Dns.GetHostName();
  }

  


  
/// <summary>
  
/// 获得本地IP地址
  
/// </summary>

  public string GetIp()
  
{
   
string IPString="127.0.0.1";
   
   
if ( Dns.Resolve(Dns.GetHostName()).AddressList.Length > 0 )
   
{
    
foreach ( IPAddress ip in Dns.Resolve(Dns.GetHostName()).AddressList)
    
{
     IPString 
= ip.ToString();
    }

    
return IPString;
   }

   
else return "127.0.0.1";
  }


  
/// <summary>
  
/// 获取本地MAC地址 手工添加引用System.Management组件,其文件为system.management.dll
  
/// </summary>


  
public string GetMac()
  
{
   
string mac="";
   ManagementObjectSearcher query 
=new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration") ;
   ManagementObjectCollection queryCollection 
= query.Get();
   
foreach( ManagementObject mo in queryCollection ) 
   

    
if(mo["IPEnabled"].ToString() == "True")
     mac 
= mo["MacAddress"].ToString();
   }

   
return mac;
      }

  

  
public bool GetNetState()
  
{
   
int i=0;
   
bool state = InternetGetConnectedState(out i,0);
   
return state;   
  }

  
public systeminfo()
  
{
   
//
   
// TODO:
   
//
  }

 }

}

posted on 2006-04-17 22:53  MadGoat  阅读(175)  评论(0)    收藏  举报