查找了几个方法,经过调试修改,下面这个方法能很好的获取到本地的IP和MAC地址。可以用于这方面的功能实现。主要是要添加System.Management的引用。

using System; using System.Management; using System.Net; public class Program { static void Main(string[] args) { try { string ip = ""; string mac = ""; ManagementClass mc; string hostInfo = Dns.GetHostName(); //IP地址 //System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;这个过时 System.Net.IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList; for (int i = 0; i < addressList.Length; i++) { ip = addressList[i].ToString(); } //mac地址 mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (mo["IPEnabled"].ToString() == "True") { mac = mo["MacAddress"].ToString(); } } //输出 string outPutStr = "IP:{0},\n MAC地址:{1}"; outPutStr = string.Format(outPutStr, ip, mac); Console.WriteLine(outPutStr); } catch (Exception e) { } Console.ReadLine(); } }