void GetAll() { IDictionary<string, string> hostList = new Dictionary<string, string>(); DirectoryEntry MainGroup = new DirectoryEntry("WinNT:"); foreach (DirectoryEntry domain in MainGroup.Children) { foreach (DirectoryEntry pc in domain.Children) { try { System.Net.IPAddress[] remoteHost = Dns.GetHostAddresses(pc.Name); hostList.Add(pc.Name, remoteHost[0].ToString()); } catch { } } } using (StreamWriter sw = new StreamWriter("c:\\pp.txt", true)) { foreach (KeyValuePair<string, string> child in hostList) { sw.WriteLine(Environment.NewLine + "name:" + child.Key + " ip:" + child.Value); } sw.Flush(); sw.Close(); } }
以上把局域网的计算机以及IP保存到c盘
再根据ip地址获取mac地址
public string GetMac(string IP) { string dirResults = ""; ProcessStartInfo psi = new ProcessStartInfo(); Process proc = new Process(); psi.FileName = "nbtstat"; psi.RedirectStandardInput = false; psi.RedirectStandardOutput = true; psi.Arguments = "-A " + IP; psi.UseShellExecute = false; proc = Process.Start(psi); dirResults = proc.StandardOutput.ReadToEnd(); proc.WaitForExit(); dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t", ""); Regex reg = new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?))__MAC", RegexOptions.IgnoreCase | RegexOptions.Compiled); Match mc = reg.Match(dirResults + "__MAC"); if (mc.Success) { return mc.Groups["key"].Value; } else { reg = new Regex("Host not found", RegexOptions.IgnoreCase | RegexOptions.Compiled); mc = reg.Match(dirResults); if (mc.Success) { return "Host not found!"; } else { return ""; } } }
需要的稍作更改即可使用
时间: 2024-10-10 11:33:20