问题标签 [sharppcap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
181 浏览

c# - 使用 SharpPcap 确定 TCP 流的连接速度

我正在做一个项目,我正在尝试找到一种方法来确定 C# 中使用 sharppcap 的 tcp 流的连接速度。有什么我应该研究的方法吗?我已经编写了一个数据包嗅探器,它收集 tcp 数据包并按端口号分隔它们。我最终想确定通过每个端口的流量的速度,然后显示该信息。

0 投票
1 回答
2005 浏览

c# - 如何使用 Sharppcap 和 npcap 监视 Windows 环回适配器?

我已经安装了 npcap 驱动程序,因为我想监控 windows 环回适配器。然而,环回适配器不在 SharpPcap CaptureDeviceList 中。

我在 Wireshark 中看到了环回适配器,并且 Wireshark 能够监控环回适配器。

我应该怎么做才能使用 SharpPcap 监控环回适配器?

0 投票
1 回答
807 浏览

wireshark - SharpPcap - 从标准输出捕获

我对制作一个能够从 Android 设备捕获网络流量的 C# 程序很感兴趣。使用 ADB,我能够将流量从设备转发到 Windows 标准输出。然后,输出将被转发到预先配置为监听标准输出的 Wireshark。

以下是我正在使用的命令,以防其他人需要

在第一个 CMD 窗口中

在第二个 CMD 窗口中

这是我的问题。

我正在使用 SharpPcap 在我的程序中捕获网络流量。目前,我能够从我的网络适配器(即以太网或 WiFi)获取数据包。但正如您所见,在此命令之后,网络流量从 Android 设备转发到标准输出

此命令的输出将作为以下命令的输入,因为 Wireshark 配置为通过“-i -”侦听标准输出

每次执行以上 2 条命令,都会打开一个 Wireshark 窗口实例来抓包。这不能应用于我的程序。

这个想法是使用 SharpPcap 打开一个表单以从标准输出中捕获数据包

有谁知道如何做到这一点?也欢迎任何其他想法。

非常感谢!!!

0 投票
1 回答
773 浏览

c# - SharpPcap 中的离线数据包过滤

我正在尝试使用SharpPcap从 .cap 文件中离线捕获数据包。我打算基于过滤器捕获这些数据包。

以下是我的代码片段。

当我将过滤器设置为“tcp”时,我看不到控制台上记录了任何帧,但我可以在 wireshark 上看到它们。 WireShark 显示器 带有 tcp 过滤器的控制台输出

相反,如果我将过滤器设置为“”,我可以在控制台上看到 .cap 文件中的所有帧。 无过滤器的控制台输出

离线模式是否支持包过滤?如果支持,那么我的过滤器有什么问题吗?

0 投票
1 回答
706 浏览

c# - c# 使用sharpPcap制作的网络监视器应用程序,每次调用应显示一个msgbox的方法每次调用显示多个msgbox

我正在构建应用程序,它应该显示每个进程的网络流量。我正在使用 SharpPcap。

想法是开始在新线程上捕获网络流量,每个进程一个线程。它应该如何工作:在新线程上开始捕获,等待 2000 毫秒,停止捕获,在消息框中显示捕获的流量(现在),结束线程.

问题:对于某些进程,消息框显示多次,这意味着该方法被调用的次数超过了应有的次数。我使用列表(我确保列表中的每个进程都是唯一的,那里没有错误)和 foreach 循环。

在此处输入图像描述

对于列表中的每个进程,在 foreach 循环中调用方法 StartThreads。

应该捕获网络流量的线程:

我还注意到,有时,在调试模式下,我得到了 shappcap 异常:“线程在 00:00:02 后中止”,但我认为这并不重要。

0 投票
2 回答
2237 浏览

c# - 无法加入多播组c#

在我的项目中,我需要通过 UDP 接收视频。Source 有一个 IP 224.0.0.21,Sink 有一个 IP 169.254.170.141。我通过端口 3956 接收视频(这是来自 Wireshark 的有效信息)。我使用 SharpPcap 接收 UDP 流量,但它没有加入多播的方法。我从 MSDN 尝试此代码,但它不起作用。

在我的 PC 中,我有一些网络适配器,但我使用连接到源视频的设备的 IP 地址。源和接收器直接连接。当我开始在 Wireshark 中监控流量时,我的程序也接收到数据包,但没有 Wireshack,它就无法做到这一点。我的代码:

0 投票
1 回答
398 浏览

c# - 缺少 CaptureEventArgs.Packet 的提取方法

因此,我正在尝试使用 Sharppcap 嗅探数据包,并密切关注 codeproject 上Sharppcap的开发人员教程,我尝试extract()CaptureEventArgs.Packet. 似乎,该extract()方法没有实现。代码:

我的目标是将收到的数据包解析为 TcpPacket 以进一步进行。我想存储和显示源/目标 ip 和端口、时间戳等。那么,我错过了什么吗?

0 投票
1 回答
332 浏览

pcap - 如何从 C# 授予 Windows 10 中 Pcap 库的权限?

我使用 SharpPcap 库来实现 GOOSE 协议侦听器(EtherType = 0x88B8)。它运行良好,但前提是我并行运行 Wireshark,否则我的程序不会捕获 GOOSE 数据包。

SharpPcap 示例也不会在 Wireshark 未运行时捕获 GOOSE 数据包。但是 SharpPcap 库会捕获我的广播 UDP 数据包。

0 投票
1 回答
136 浏览

c# - 重新启动我的代码的一部分?SharpPCap 的问题

我正在为正在玩的游戏运行一个小网络嗅探器,并且我试图捕获某些流量,但遇到一个问题,这可能是由于 SharpPcap 遇到多个 TCP 连接问题(例如,当我打开或关闭第二个客户端时。我假设它可能在其中一个 TCP 连接关闭时停止跟踪,即使第二个仍在运行)

这是代码的重要部分,它非常基础,取自另一个项目:

通常我会用一个计时器来解决这个问题,但我不确定如何处理仅从主方法中重新启动选定的部分,因为事件处理程序以及先前选择的捕获设备都在那里注册。

通过重新启动捕获,我希望在捕获下降时重新启动捕获..

我应该如何处理这个?

抱歉,如果这是一个愚蠢的问题,但我离成为一名优秀的程序员还很远,到目前为止,我只从自己的小项目中学到了东西。

0 投票
2 回答
151 浏览

c# - 夏普卡普:'。' 使用 printHex() 方法的字符而不是空格

我正在使用 SharpPcap 库成功解析“.pcap”文件。

目标是从 TCP/HTTP 数据包中检索 XML 数据。为了做到这一点,我使用下面的代码(删除空检查,使其更具可读性):

移动,除了十六进制值和初始行,我能够从rawData变量中提取 XML 数据,以及意外的副作用。

返回的不是空格,而是.PrintHex()'.' 人物:

代替:

我得到这个:

我没有做任何奇怪的替换或字节转换。上述行为正是.PrintHex()返回的结果。

  • 这是否是预期的结果?
  • 更重要的是……如何解决或防止这种情况?(请记住,无法区分有效的 '.' 和转换后的 '.')

库版本:

  • .NET 框架:> 4.5.2

  • Pcapsharp:4.2.0