【问题标题】:sniff the data on a selected port - C#嗅探选定端口上的数据 - C#
【发布时间】:2014-08-04 15:54:42
【问题描述】:

我有一个应用程序在特定端口上运行。我无权访问此应用程序,但我知道它的作用。现在这个应用程序正在监听一个特定端口并处理来自该端口的数据

现在我被分配了记录在该端口上接收到的所有数据包以及所有数据详细信息的任务。我使用了wireshark,可以应用过滤器来检查该特定端口上的数据。所以我在这里假设我一直在创建这种截图程序,所以我可以获得所有数据包的详细信息。我搜索了堆栈溢出并想出了

  1. Code project
  2. Stack overflow

现在我已经评估了样本,可以看到它给了我数据包,但它侦听系统的所有端口。不在特定端口上。有人可以帮助我实现我的解决方案吗?基本上,如果我会监听所有端口,那么服务器上运行着很多应用程序/程序,所以它可能会遇到瓶颈。谢谢大家。

【问题讨论】:

    标签: c# sockets networking wireshark winpcap


    【解决方案1】:

    在 MJsniffer.MJsnifferForm 类中,您有 ParseData 方法 - 第一步它将接收到的字节转换为 IPHeader 对象,然后在 ProtocolType 字段上有一个巨大的 SWITCH-CASE。在 SWITCH 内部,创建了 TCPHeader 或 UDPHeader 并将其添加到表单上的 TreeView - 您可以通过 SourcePort/DestinationPort 字段 tcpHeader/udpHeader 过滤包。

    此外,如果您已经熟悉 WireShark,那么您可以轻松切换到 Pcap.NET 包装器(它们使用相同的数据包捕获库 - WinPcap)

    【讨论】:

    • 有没有办法直接检查该端口而不是获取所有数据并通过它进行过滤?
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2023-02-08
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多