pcap.net mac地址设置

本文关键字:设置 地址 mac net pcap | 更新日期: 2023-09-27 18:27:50

我正在设置一个程序,将UDP数据包从一台服务器发送到不同网络上的另一台服务器。我在设置EthernetLayer时遇到了问题,我已经设法使用将源MacAddress设置为我自己的

    public static string GetMacAddress()
    {
        string macAddresses = string.Empty;
        foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
        {
            if (nic.OperationalStatus == OperationalStatus.Up)
            {
                //macAddresses += nic.GetPhysicalAddress();
                macAddresses = string.Join(":", (from z in nic.GetPhysicalAddress().GetAddressBytes() select z.ToString("X2")).ToArray());
                break;
            }
        }
        return macAddresses;
    }

这似乎很好用,但是我应该将什么设置为Destination MacAddress?不管我把它设置为什么,它似乎只是通过我的本地网络向所有机器广播数据包。这是我在pcapdotnet示例中遵循的下面的代码。

        new EthernetLayer
        {
            Source = new MacAddress(Mac),
            Destination = new MacAddress("02:02:02:02:02:02"),
            EtherType = EthernetType.None,
        };

这正确地设置了我的源MacAddress,但目的地显然不正确,pcapdotnets文档上的示例如下:

        new EthernetLayer
            {
                Source = new MacAddress("01:01:01:01:01:01"),
                Destination = new MacAddress("02:02:02:02:02:02"),
                EtherType = EthernetType.None, // Will be filled automatically.
            };

有没有办法获得目标IP的MacAddress?

pcap.net mac地址设置

如评论中所述,您可以使用ARP协议自动获取IP地址的MAC地址。要使用它,首先阅读ARP并熟悉它,然后在Pcap.Net.中查看ArpLayerArpDatagram

如果你想跳过这一步,你可以检查你的路由器MAC地址,然后简单地写下硬编码,因为除非你使用不同的路由器,否则它不会改变。