将我的MAC地址转换成字节数组时,构建包

本文关键字:数组 构建 字节数 字节 MAC 我的 地址 转换 | 更新日期: 2023-09-27 18:06:30

我想构建简单的DHCP packet,其中一个协议选项是client mac address(选项61),所以我有我的mac地址:

string macAddress = "00:14:22:18:81:11";

,我想把它放在我的数据包数组(6字节),这就是我所尝试的,我想知道如何做到这一点(我试图将我的字符串转换成字节[],但这个数组长度是24)

        // Set requested ip address - 61
        index += DHCPMessageTypeLength;
        packetArrayBytes[index] = 61; // option 
        packetArrayBytes[index + 1] = 7; // length
        packetArrayBytes[index + 2] = 1; // hardware type Ethernet
        packetArrayBytes[index + 3] = ?; // mac
        packetArrayBytes[index + 4] = ?; // mac
        packetArrayBytes[index + 5] = ?; // mac
        packetArrayBytes[index + 6] = ?; // mac
        packetArrayBytes[index + 7] = ?; // mac
        packetArrayBytes[index + 8] = ?; // mac

将我的MAC地址转换成字节数组时,构建包

我的建议是:

List<byte> packet = new List<byte>();
packet.AddRange(new byte[] { 61, 7, 1 });
packet.AddRange(macAddress.Split(':').Select(b => Convert.ToByte(b, 16)));
Array.Copy(packet.ToArray(), 0, packetArrayBytes, DHCPMessageTypeLength, packet.Count);