【问题标题】:How to I send my broadcast Ethernet packet to other subnets?如何将我的广播以太网数据包发送到其他子网?
【发布时间】:2015-02-17 10:50:09
【问题描述】:

所以这是我遇到的一个更高级别的问题,我正在努力解决它。我有一个发送广播以太网数据包的程序(使用 Pcap.Net dll 将其剥离)。如果设备收听广播,它将用另一个以太网数据包响应我。

我的设置:

我的电脑 IP 是:10.10.3.109 (DHCP)

我的网关:10.10.1.254

如果此时我将以太网数据包广播到 255.255.255.0,我会收到从 10.10.0.x 到 10.10.1.x 的响应

我的目标:

我想设置我的环境,以便我可以发送此广播数据包,可以从不同网络上的计算机通过网关 10.10.5.254 到达我办公室的 10.10.5.x 和 10.10.4.5.x 网络(我没有给网络编号,所以如果它们造成混淆,我深表歉意。.4/.5 是同一个网络)

所以我的问题是,我需要在我的 vb 或我的环境中做什么,以便当我发送这个数据包时,两个网络都能听到?

我尝试过的:

显然,以太网不会自行与其他子网通信。我读到的是,您可以使用类似的命令通过路由器创建路由。例如:

 route ADD 10.10.4.254 MASK 255.255.255.0 10.10.3.109

它运行成功,但是当我运行该程序时,我没有得到其他网络的任何响应。我在设置中缺少什么来完成这项工作?

我的 VB 代码:

对于有趣的东西(基于 pcapdotnet 示例):

      ' Open the output device
         Dim Communicator As PacketCommunicator = selectedOutputDevice.Open(65536, PacketDeviceOpenAttributes.None, 500)

        Dim filter As BerkeleyPacketFilter = Communicator.CreateFilter("len >= 415 and len <= 417")
        Communicator.SetFilter(filter)

        ' send broadcast packet
        Communicator.SendPacket(BuildEthernetPacket(ReqInfoPkt, "ff:ff:ff:ff:ff:ff"))

【问题讨论】:

    标签: vb.net networking pcap.net


    【解决方案1】:

    如何将我的广播以太网数据包发送到其他子网?

    你不能。

    以太网不知道也不关心更高级别的协议,包括 IP。 IP 并不总是在以太网上运行。它们是不同的东西。

    【讨论】:

    • 无赖。我想那时没有办法绕过它。
    • @sparkysword 您可以使用 Internet 上的隧道桥接您的两个网络。有一些便宜的硬件 VPN 设备可以做到这一点。但是不,这不是您可以在应用程序层完成的事情。需要为此活动设置网络。另外,我在您的问题中看不到任何与以太网帧真正相关的内容。我不完全理解你想要做什么。为什么不直接将数据发送到 IP 广播地址?您也许可以配置您的路由器以传递该流量。
    • 以太网帧很重要的唯一方式是,这种类型的帧是设备将响应的,仅此而已。不过,我喜欢其他想法,并且可能会尝试使用它。
    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多