码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-02-11 18:13:45      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 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

需要的稍作更改即可使用

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

标签:

原文地址:http://www.cnblogs.com/pinhao/p/4286590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!