码迷,mamicode.com
首页 > Windows程序 > 详细

C# 获取MAC地址

时间:2020-05-02 15:21:15      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:strong   stat   returns   list   res   shel   serve   通过命令   contains   

通过CMD命令进行获取

使用CMD命令这将面临语言编码问题,可以通过命令让系统默认采用美国英文来显示:

chcp 437
MacAddress = MacAddressHelper.GetMacByIpConfig() ?? MacAddressHelper.GetMacByWmi().FirstOrDefault() ?? "unknown"; //通过命令让系统默认采用美国英文来显示:
 ///<summary>
        /// 根据截取ipconfig /all命令的输出流获取网卡Mac,支持不同语言编码
        ///</summary>
        ///<returns></returns>
        public static string GetMacByIpConfig()
        {
            List<string> macs = new List<string>();

            var runCmd = Cmd.RunCmd("chcp 437&&ipconfig/all");

            foreach (var line in runCmd.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(l => l.Trim()))
            {
                if (!string.IsNullOrEmpty(line))
                {
                    if (line.StartsWith("Physical Address"))
                    {
                        macs.Add(line.Substring(36));
                    }
                    else if (line.StartsWith("DNS Servers") && line.Length > 36 && line.Substring(36).Contains("::"))
                    {
                        macs.Clear();
                    }
                    else if (macs.Count > 0 && line.StartsWith("NetBIOS") && line.Contains("Enabled"))
                    {
                        return macs.Last();
                    }
                }
            }

            return macs.FirstOrDefault();
        }

 

C# 获取MAC地址

标签:strong   stat   returns   list   res   shel   serve   通过命令   contains   

原文地址:https://www.cnblogs.com/xuxingque/p/12817809.html

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