linux win 通用的获取Mac的方法

经测试下面方法获取Mac跨平台

复制代码
        protected override void OnLoad(EventArgs e)
        {
            Response.Write(string.Join("<br/>", GetMacString()));
            Response.Write("<br/>");

            base.OnLoad(e);
        }


        public NetworkInterface[] NetCardInfo()
        {
            return NetworkInterface.GetAllNetworkInterfaces();
        }

        public string[] GetMacString()
        {
            string strMac = "";
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces)
            {
                if (ni.OperationalStatus == OperationalStatus.Up)
                {
                    strMac += ni.GetPhysicalAddress().ToString() + "|";
                }
            }
            return strMac.Split('|');
        }
复制代码

相关文章:

C# C/S程序获取MAC地址三种方法   http://www.cnblogs.com/yzb305070/archive/2011/04/03/2004364.html

 

附:

复制代码
/// <summary>
/// 获取当前请求的服务器IP,以及相应的MAC地址
/// </summary>
/// <returns>[当前请求的服务器IP,MAC地址]</returns>
public string[] GetRequestIPMAC()
{
        string[] result = new string[2];

        string serverName = Page.Request.ServerVariables["SERVER_NAME"];
        string requestServerIP = Page.Request.ServerVariables["LOCAL_ADDR"];

        if (serverName == "localhost")
        {
                result[0] = "localhost";
        }
        else
        {
                result[0] = requestServerIP.ToLower();

                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                        try
                        {
                                if ((bool)mo["IPEnabled"] == true)
                                {
                                        string[] IPAddresses = (string[])mo["IPAddress"];
                                        if (IPAddresses.Length > 0)
                                        {
                                                for (int i = 0; i < IPAddresses.Length; i++)
                                                {
                                                        if (IPAddresses[i] == requestServerIP)
                                                        {
                                                                result[1] = mo["MacAddress"].ToString().ToLower();
                                                                break;
                                                        }
                                                }
                                        }

                                        if (!String.IsNullOrEmpty(result[1]))
                                        {
                                                break;
                                        }
                                }
                        }
                        finally
                        {
                                mo.Dispose();
                        }
                }
        }


        return result;
}
复制代码
posted @   shiningrise  阅读(388)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示