C# 生成数据包时将我的MAC地址转换为字节数组
我想构建简单的C# 生成数据包时将我的MAC地址转换为字节数组,c#,.net,packet,C#,.net,Packet,我想构建简单的DHCP数据包,其中一个协议操作是客户端mac地址(选项61),因此我有我的mac地址: string macAddress = "00:14:22:18:81:11"; 我想把它放在我的数据包数组中(6个字节),这就是我所尝试的,我想知道如何做(我尝试将我的字符串转换成字节[],但这个数组长度是24) 以下是我的建议: List<byte> packet = new List<byte>(); packet.AddRange(new byte[] { 6
DHCP数据包
,其中一个协议操作是客户端mac地址
(选项61),因此我有我的mac地址:
string macAddress = "00:14:22:18:81:11";
我想把它放在我的数据包数组中(6个字节),这就是我所尝试的,我想知道如何做(我尝试将我的字符串转换成字节[],但这个数组长度是24)
以下是我的建议:
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);
List packet=newlist();
AddRange(新字节[]{61,7,1});
packet.AddRange(macAddress.Split(“:”).Select(b=>Convert.ToByte(b,16));
Copy(packet.ToArray(),0,packetArrayBytes,DHCPMessageTypeLength,packet.Count);
macAddress.Split(“:”).Select(b=>Convert.ToByte(b))在字符串包含字母(A、b、C、D、E、F)时为我提供错误:(@Bosiwow感谢您指出这一点,我忘了为十六进制转换指定基数16。请参阅编辑的答案。
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);