6
    NetworkInterface[] arr = NetworkInterface.GetAllNetworkInterfaces();

    foreach (NetworkInterface item in arr)
    {
        PhysicalAddress mac = item.GetPhysicalAddress();
    }

00E0EE00EE00 の値を返しますが、00:E0:EE:00:EE:00 のようなものを表示したいのですが、.Net 4 を使用する必要があります

何か案は ?

4

5 に答える 5

5

文字列クラスのString.Insertメソッドを使用して追加できます:

string macAddStr = "00E0EE00EE00";
string macAddStrNew = macAddStr;
int insertedCount = 0;
for(int i = 2; i < macAddStr.Length; i=i+2)  
   macAddStrNew = macAddStrNew.Insert(i+insertedCount++, ":");

//macAddStrNew will have address 00:E0:EE:00:EE:00
于 2012-12-08T06:17:14.413 に答える
1

次のようなことができます。

    string macAddr = "AAEEBBCCDDFF";
    var splitMac = SplitStringInChunks(macAddr);

    static string SplitStringInChunks(string str)
    {
        for (int i = 2; i < str.Length; i += 3)
             str =  str.Insert(i, ":");
        return str;
    }
于 2014-03-13T08:32:29.660 に答える
0

必要に応じて、string.Join と Linq .Select() を使用できます。

NetworkInterface[] arr = NetworkInterface.GetAllNetworkInterfaces();

foreach (NetworkInterface item in arr)
{
    PhysicalAddress mac = item.GetPhysicalAddress();
    string stringFormatMac = string.Join(":", mac.GetAddressBytes().Select(varByte => varByte.ToString("X2")));
}

それが役に立てば幸い。

于 2014-03-13T08:17:13.487 に答える