加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用单声道获取linux中的MAC地址

发布时间:2020-12-15 04:21:19 所属栏目:百科 来源:网络整理
导读:如何在 Linux上的Mono应用程序中获取计算机的MAC地址? 解决方法 从 MSDN借用,在VS2008和mono 2.4.2.3(Debian 2.4.2.3 dfsg-2)上测试: using System;using System.Net.NetworkInformation;namespace ConsoleApplication2{ class Program { public static vo
如何在 Linux上的Mono应用程序中获取计算机的MAC地址?

解决方法

从 MSDN借用,在VS2008和mono 2.4.2.3(Debian 2.4.2.3 dfsg-2)上测试:
using System;
using System.Net.NetworkInformation;

namespace ConsoleApplication2
{
    class Program
    {
        public static void ShowNetworkInterfaces()
        {
            IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
            NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
            Console.WriteLine("Interface information for {0}.{1}     ",computerProperties.HostName,computerProperties.DomainName);

            if (nics == null || nics.Length < 1)
            {
                Console.WriteLine("  No network interfaces found.");
                return;
            }

            Console.WriteLine("  Number of interfaces .................... : {0}",nics.Length);

            foreach (NetworkInterface adapter in nics)
            {
                Console.WriteLine();
                Console.WriteLine(adapter.Description);
                Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length,'='));
                Console.WriteLine("  Interface type .......................... : {0}",adapter.Netwo$
                Console.Write("  Physical address ........................ : ");
                PhysicalAddress address = adapter.GetPhysicalAddress();
                byte[] bytes = address.GetAddressBytes();
                for (int i = 0; i < bytes.Length; i++)
                {
                    // Display the physical address in hexadecimal.
                    Console.Write("{0}",bytes[i].ToString("X2"));
                    // Insert a hyphen after each byte,unless we are at the end of the
                    // address.
                    if (i != bytes.Length - 1)
                    {
                        Console.Write("-");
                    }
                }
                Console.WriteLine();
            }
        }

        static void Main(string[] args)
        {
            ShowNetworkInterfaces();
        }
    }
}

输出(linux):

Interface information for hera.(none)
  Number of interfaces .................... : 2

lo
==
  Interface type .......................... : Loopback
  Physical address ........................ :

eth0
====
  Interface type .......................... : Ethernet
  Physical address ........................ : 00-26-xx-xx-xx-xx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读