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:
//
}
}
}