获取局域网计算机名以及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

需要的稍作更改即可使用

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。