【发布时间】:2012-08-24 05:22:59
【问题描述】:
我一直在玩使用
构建的以太网协议(不是 IP)socket(PF_PACKET, SOCK_RAW, ether_type)
我有一个小问题。我已经构建了一个数据包,其中源和目标 mac 设置为我的本地卡 mac,我还使用 bind 绑定了套接字。
我可以很好地接收来自网络的数据包。 我能够将数据包发送到我看到它们出现在wireshark中的程度。
但是,我的监听应用看不到这些数据包。但是,它能够看到来自网络上其他来源的数据包。
我应该指出,我的 mac 地址似乎是以正确的字节顺序发送的。
你可以给自己发数据包吗?
网卡不回环吗? linux内核是否在IP级别为环回做了一些特殊的事情,因为我低于此,忽略我?
【问题讨论】:
-
只是想知道您在运行此程序时是否具有 root 权限,因为 RAW 套接字需要该权限。
-
另一种选择是使用虚拟以太网“tap”设备,以及像 VDE2 这样的虚拟交换机。这将允许尝试更现实和更复杂的场景。 stackoverflow.com/questions/2082722/…
-
是的,我有 root 权限。我正在打印所有错误。
-
@MattH : 你能发布你的代码吗?谢谢。
标签: linux sockets raw-sockets