/******************************************************************************* * Copyright(c) 2012 dongke All rights reserved. / Confidential * 类的信息: * 1.程序名称:SystemAPI.cs * 2.功能描述:取得本地机器相关信息,如:机器名、IP地址等 * 编辑履历: * 作者 日期 版本 修改内容 * 欧阳涛 2013/07/14 1.00 新建 *******************************************************************************/ using System; using System.Net; using System.Management; namespace Dongke.IBOSS.PRD.Basics.Library { /// /// 取得本地机器相关信息,如:机器名、IP地址等 /// public class SystemAPI { #region 公开属性 /// /// 取得本地计算机名称 /// public static string ComputerName { get { return System.Windows.Forms.SystemInformation.ComputerName; } } /// /// 取得当前机器所处的域名 /// public static string DomainName { get { return System.Windows.Forms.SystemInformation.UserDomainName; } } /// /// 取得当前登录系统的用户名称 /// public static string UserName { get { return System.Windows.Forms.SystemInformation.UserName; } } /// /// 取得当前计算机的MAC地址 /// public static string MacAddress { get { string mac = "00:00:00:00:00:00"; try { ManagementObjectCollection moc = ManagementObjectCollection; if (moc == null) { return null; } foreach (ManagementObject managementObject in moc) { if (managementObject["IPAddress"] != null) { // 因为MAC地址可能存在多个,优先返回存在IP地址的MAC地址 mac = managementObject["MacAddress"].ToString(); break; } } } catch { } return mac; } } /// /// 取得当前机器的IP地址 /// public static string IPAddress { get { string hostName = Dns.GetHostName(); // 得到本机的主机名 IPHostEntry ipHostEntry = Dns.GetHostEntry(hostName); // 取得本机IP string ipAddressHost = "127.0.0.1"; foreach (IPAddress ip in ipHostEntry.AddressList) { if (ip.AddressFamily.ToString() == "InterNetwork") { ipAddressHost = ip.ToString(); break; } } return ipAddressHost; } } #endregion #region 受保护方法/函数 private static System.Management.ManagementObjectCollection _managementObjectCollection = null; /// /// 取得Win32_NetworkAdapterConfiguration的ManagementObjectCollection /// protected static System.Management.ManagementObjectCollection ManagementObjectCollection { get { if (_managementObjectCollection != null) { return _managementObjectCollection; } try { System.Management.ManagementObjectSearcher managementObjectSearcher = new System.Management.ManagementObjectSearcher( "SELECT * FROM Win32_NetworkAdapterConfiguration"); if (managementObjectSearcher != null) { _managementObjectCollection = managementObjectSearcher.Get(); return _managementObjectCollection; } } catch (Exception ex) { throw ex; } return null; } } #endregion } }