1

以 Windows 7 为示例平台,我想了解如何在第 3 层(IP)层编写应用程序。以我想在 C/C++ 中实现 ping 自己的情况作为一个简单的说明性示例。我该怎么做呢?

当然,问题在于,当在 IP 层而不是 TCP/UDP 层运行时,没有端口号标识IP 层将数据包交给的进程(我的进程)。所以,这绝对不能是一个传统的应用层程序。

相反,我认为我需要编写一个 3 级 hdnler 来执行我想要的操作并将其注册到操作系统以取代现有的 IP 层实现。

我的想法正确吗?如果是这样,我将如何实施它?如果不是,正确的方法是什么?

最后,我想问关于第 2 层(以太网)的完全相同的问题。如何直接发送和接收以太网帧?

4

1 回答 1

1

winpcap最适合您的需求。您可以通过 windpcap api 发送/接收原始数据包。祝你好运。

于 2014-04-30T01:00:21.550 回答