在pcap.net中操作和发送ARP响应

本文关键字:ARP 响应 操作 pcap net | 更新日期: 2023-09-27 18:12:04

我正在建造一座人工桥,为了让数据包通过它,它必须发送一个arp响应,就好像它是目标计算机一样,以便针对网络另一端的数据包通过它。

我发现了一种发送ARP请求广播的方法使用SharpPcap和packet发送我自己的ARP包。净

但是我找不到关于如何发送响应的任何API描述。

谢谢

在pcap.net中操作和发送ARP响应

我查找了一个示例ARP pcap文件,发现如下:http://packetlife.net/captures/icmp_in_l2tpv3.cap(在Wireshark中搜索ARP)。

这是Pcap。Net代码应该创建一个与此文件中的ARP应答包等效的数据包:

Packet packet = PacketBuilder.Build(
    DateTime.Now,
    new EthernetLayer
    {
        Source = new MacAddress("00:50:56:a5:64:4d"),
        Destination = new MacAddress("00:50:56:9a:78:c7"),
        EtherType = EthernetType.Arp
    },
    new ArpLayer
    {
        ProtocolType = EthernetType.IpV4,
        SenderHardwareAddress = new byte[] {0x00, 0x50, 0x56, 0xa5, 0x64, 0x4d}.AsReadOnly(),
        SenderProtocolAddress = new byte[] {0x0a, 0xd8, 0x64, 0xd2}.AsReadOnly(),
        TargetHardwareAddress = new byte[] {0x00, 0x50, 0x56, 0x9a, 0x78, 0xc7}.AsReadOnly(),
        TargetProtocolAddress = new byte[] {0x0a, 0xd8, 0x64, 0xd3}.AsReadOnly(),
        Operation = ArpOperation.Reply,
    });