首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pcap.net mac地址设置

pcap.net mac地址设置
EN

Stack Overflow用户
提问于 2015-12-23 17:19:05
回答 1查看 1.1K关注 0票数 0

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

代码语言:javascript
复制
    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;
    }

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

代码语言:javascript
复制
        new EthernetLayer
        {
            Source = new MacAddress(Mac),
            Destination = new MacAddress("02:02:02:02:02:02"),
            EtherType = EthernetType.None,
        };

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

代码语言:javascript
复制
        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吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 11:03:11

正如注释中提到的,您可以使用ARP协议自动获取IP地址的MAC地址。要使用它,首先阅读有关ARP的内容,然后熟悉它,然后在ArpLayerArpDatagram中看到Pcap.Net

如果你想跳过这一步,你只需检查你的路由器MAC地址,只需写硬编码,因为它不会改变,除非你使用另一个路由器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34440732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档