gpt4 book ai didi

c++ - 用于查看 Wireshark 重置数据包的 C/C++ 应用程序

转载 作者:行者123 更新时间:2023-11-30 17:18:25 25 4
gpt4 key购买 nike

是否可以实时查看从运行源代码的计算机上的本地(目标)IP 发送到远程(源)IP 的任何重置 (RST) 数据包?

我们正在寻找从本地计算机发送 RST 数据包的远程 IP 地址。

这是 Wireshark 中所需的内容: enter image description here

一直在研究 netstat 和 GetIpStatistics。但这些都不起作用。

有什么想法(基于 C/C++ 代码的 Windows)吗?

最佳答案

是的,可以实时做你想做的事。如果 Wireshark 能做到,那么你也能做到。

您可能想看看 libpcap,一个用于数据包捕获的可移植 C 库。有关 libpcap 的信息可以从其主页 http://www.tcpdump.org/ 获取。 。然后您需要对捕获的数据包进行一些额外的处理:

  • 查看数据包是否足够长以包含所有必需的数据(此检查需要在单独的部分中逐层完成)
  • 查看以太网源地址是否是计算机中以太网适配器的地址(以便它是发送的数据包,而不是接收的数据包)
  • 使用 EtherType header 字段查看是否是 IP 数据包
  • 查看数据包的IP源地址是否是计算机中接口(interface)的地址
  • 查看是否是 TCP 数据包
  • 查看是否包含TCP标志RST
  • 您可能还想检查 IP 级和 TCP 级校验和
  • 提取远程 IP 地址

最常见的以太网帧类型是 http://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II 中解释的以太网 II 帧。 。可以使用 https://www.rfc-editor.org/rfc/rfc791 中的指令解析 IP header 。 。 TCP header 可以使用 https://www.ietf.org/rfc/rfc793.txt 中的指令进行解析。 。因此,总而言之:您需要使用 libpcap 捕获原始数据包,并准备好在所有协议(protocol)级别解析它们。

熟悉网络编程的合格程序员应该能够在一天内完成此操作,但如果您不熟悉网络编程,我会为此预留更多时间。

我不知道有什么捷径。显然,您可以尝试一些围绕 tcpdump 的脚本 hack,但它们会非常 hackish,如果您在 Windows 上运行,它们可能是不可能的。

关于c++ - 用于查看 Wireshark 重置数据包的 C/C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29174507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com