获取局域网计算机名以及IP以及mac地址

 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();

            }

        }
View Code

以上把局域网的计算机以及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 ""; }

            }

        }
View Code

需要的稍作更改即可使用

你可能感兴趣的:(mac)