Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 生成数据包时将我的MAC地址转换为字节数组_C#_.net_Packet - Fatal编程技术网

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);