Formatting MAC address in C#

后端 未结 5 1206
灰色年华
灰色年华 2020-12-06 10:35

In my C# application, I want to get my MAC address by using NetworkInterface class as the following:

NetworkInterface nic in NetworkInterface.Ge         


        
相关标签:
5条回答
  • 2020-12-06 11:06

    Try Something like this:

    // Insert Colons on MAC
    string MACwithColons = "";
    for (int i = 0; i < MAC.Length; i++) {
      MACwithColons = MACwithColons + MAC.Substring(i, 2) + ":";
      i++;
    }
    MACwithColons = MACwithColons.Substring(0, MACwithColons.Length - 1); // Remove the last colon
    
    0 讨论(0)
  • 2020-12-06 11:07

    try

    mac = string.Join (":", (from z in nic.GetPhysicalAddress().GetAddressBytes() select z.ToString ("X2")).ToArray());
    
    0 讨论(0)
  • 2020-12-06 11:11

    The help for the command shows one way:

    http://msdn.microsoft.com/en-us/library/system.net.networkinformation.physicaladdress.aspx

        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();
    
    0 讨论(0)
  • 2020-12-06 11:19

    Where you want to show that, you have to do this:

    txtMac.text=getFormatMac(GetMacAddress());
    public string GetMacAddress()
    
    {
        NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
        String sMacAddress = string.Empty;
        foreach (NetworkInterface adapter in nics)
        {
             if (sMacAddress == String.Empty)// solo retorna la mac de la primera tarjeta
             {
                  IPInterfaceProperties properties = adapter.GetIPProperties();
                  sMacAddress = adapter.GetPhysicalAddress().ToString();
              }
        }
        return sMacAddress;
    }
    
    public string getFormatMac(string sMacAddress)
    {
        string MACwithColons = "";
        for (int i = 0; i < macName.Length; i++)
        {
            MACwithColons = MACwithColons + macName.Substring(i, 2) + ":";
            i++;
        }
        MACwithColons = MACwithColons.Substring(0, MACwithColons.Length - 1);
    
        return MACwithColons;
    }
    

    0 讨论(0)
  • 2020-12-06 11:23

    Using the comment by eFloh for using BitConverter I was able to do the following (assuming mac is predefined as a string).

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
    {
        mac = BitConverter.ToString(nic.GetPhysicalAddress().GetAddressBytes()).Replace('-', ':');
    
        //Do whatever else necessary with each mac...
    }
    
    0 讨论(0)
提交回复
热议问题