我有一个与 Perl 中一个非常基本的事情有关的问题,但我找不到有效的解决方案。
这里先有一点背景。我使用Net ::Pcap等,当我在处理数据包的函数中(由pcap_loop
$packet
我想要做的是改变这个$packet
(以太网目的地)的前6个字节,以便使用用户定义的目标mac地址(例如作为命令行参数传递左右)获得$packet
我可以使用的发送,pcap_sendpacket
比如00:11:22:33:44:55
。所以我可以拆分用户定义的地址(split
例如使用)以获取目标mac地址的每6个部分,并使用该hex
函数将其转换为十六进制,但现在我想修改我的数据包的第一个字节以用这些替换它们hex
ed 字节。我应该如何进行?
我想使用一些连接(。),但我认为这个解决方案很脏。
在 C 中思考(因为我前段时间在 C 中做过,但我希望在 Perl 中完成),一旦我得到我的“ u_char packet[]
”,我只需要对memcpy
前 6 个字节做一个用户提供的以太网地址我的packet[]
,它奏效了。