C#获取机器信息的方法
来源:互联网 发布:fpgrowth算法详解 编辑:程序博客网 时间:2024/06/05 09:31
1、使用ManagementClass类获取本机Mac地址
示例代码演示了使用ManagementClass获取本机IP地址的方法,还可以使用类似的方法获取本机的IP地址、CPU序列号、硬盘ID、物理内存等信息。
/// <summary> /// 获取Mac地址 /// </summary> /// <returns></returns> public static string GetMacAddress() { try { using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) { using (ManagementObjectCollection moc = mc.GetInstances()) { string macAddress = ""; foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { macAddress = mo["MacAddress"].ToString(); break; } } return macAddress; } } } catch { return "unknow"; } finally { } }
还可以使用ManagementObjectSearcher类来得到ManagementObjectCollection对象。下面是完整代码。
/// <summary> /// 获取本机的MAC /// </summary> /// <returns></returns> public static string GetLocalMac() { using (ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration")) { using (ManagementObjectCollection queryCollection = query.Get()) { string mac = null; foreach (ManagementObject mo in queryCollection) { if ((bool)mo["IPEnabled"] == true) mac = mo["MacAddress"].ToString(); } return (mac); } } }
2、使用Environment类获取用户名
示例代码演示通过Environment类获取用户名,使用该类还可以获取计算机名、程序当前工作目录、系统支持的换行字符串等信息。
/// <summary> /// 获取操作系统的登录用户名 /// </summary> /// <returns></returns> public static string GetUserName() { try { return Environment.UserName; } catch { return "unknow"; } finally { } }
3、使用Dns类获取本机和远程机器的IP地址
Dns类位于System.Net命名空间下,使用GetHostEntry()方法可以根据传入的主机名称得到对应的IP地址。
/// <summary> /// 获取本机IP地址 /// </summary> /// <returns></returns> public static string GetLocalIP() { string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns.GetHostEntry(strHostName); //取得本机IP return ipEntry.AddressList[0].ToString(); } /// <summary> /// 获取远程主机IP /// </summary> /// <param name="remoteHostName"></param> /// <returns></returns> public string[] GetRemoteIP(string remoteHostName) { IPHostEntry ipEntry = Dns.GetHostEntry(remoteHostName); IPAddress[] ipAddr = ipEntry.AddressList; string[] strIpAddr = new string[ipAddr.Length]; for (int i = 0; i < ipAddr.Length; i++) { strIpAddr[i] = ipAddr[i].ToString(); } return strIpAddr; }
4、使用系统API方法获取远程机器Mac地址
inet_addr()方法将字符串形式的IP地址转换成32位整型,SendARP()方法获取远程机器的Mac地址。
[DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); /// 获取远程主机MAC /// </summary> /// <param name="localIP"></param> /// <param name="remoteIP"></param> /// <returns></returns> public string GetRemoteMac(string localIP, string remoteIP) { try { Int32 ldest = inet_addr(remoteIP); //目的ip Int64 macinfo = new Int64(); Int32 len = 6; int res = SendARP(ldest, 0, ref macinfo, ref len); return Convert.ToString(macinfo, 16); } catch { return "0"; } }
0 0
- C#获取机器信息的方法
- C#获取本地机器系统信息的方法(详细)
- c#获取机器硬件信息
- C#获取机器硬件信息
- C#获取Excel架构信息的方法
- C#获取磁盘空间信息的几个方法
- C#获取Excel各类信息的方法
- c#获取客户端信息的方法
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C#获取数据库表信息与列信息的方法
- C# 获取机器软硬件常用信息
- 获取机器的硬件信息
- 获取机器的IP信息
- c#获取机器唯一识别码的方法记忆
- C# 获取计算机的硬件信息的方法
- c#获取xp系统信息的几种方法
- C#中各类获取设备存储信息的各类方法
- 怎样注册破解MyEclipse(绝对有效)?
- C++ Primer课后练习11.3,11.4,11.7,11.8,11.11,11.12,11.13,11.14
- 美好的事物都是简单的---握手与挥手
- myeclipse安装svn插件的多种方式
- 2016年应届生求职日记
- C#获取机器信息的方法
- redhat7.2修改yum源-以及-yum操作的技巧(xxx.so文件缺失处理办法)
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- Python学习(机器学习_多变量线性回归)
- 动态改变 图片的背景颜色
- 机器学习中常见的几种最优化方法
- MyEclipse中的SVN操作手册
- metlab控制摄像头操作笔记(一)基础操作
- 一天连十万字都读不到的人是没有出路的