问题标签 [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 投票
1 回答
1555 浏览

networking - 哪个网络层负责重组分片的数据报?

最近,我对网络协议和 OSI 模型进行了更深入的研究,当注意到传入的 TCP 数据报(如果这是错误的术语,请纠正我)在超过一定大小时被分成几个部分 - 在这种情况下它可能是我路由器的 MTU。我使用 SharpPcap 捕获了这些数据报,以便提取一些我正在寻找的信息,如果你想知道我从哪里得到这些信息。

无论如何,我想知道碎片数据包的重组是否不应该是 IP 层的任务,因为它确实提供了完成此任务的信息(id、碎片标志、碎片偏移)。此外,我读到,TCP 层将被解释为基于流的协议。但这实际上意味着,由 TCP 层负责以正确的方式填充应用程序的缓冲区,以便重建初始信息,并可以“​​向上”刷新所有其他层。

在我做出这个观察之前,我实际上认为 TCP 层应该关心重新组装这些数据报,但没有提到的层...

这导致了以下问题: 为什么我收到的 TCP 数据报没有重新组合什么层应该真正关心这个?

0 投票
0 回答
361 浏览

c# - 如何将 ICaptureDevice 转换为 WinPcapDevice

我正在查看SharpPcap 教程,并试图了解如何访问设备详细信息,这来自这篇文章:在 SharpPcap 如何找到设备的 IP 地址?表示我必须将ICaptureDevice对象转换为特定类型,例如WinPcapDevice.

他们展示了如何遍历设备列表,但没有展示如何进行类型转换:

0 投票
3 回答
3179 浏览

c# - SharpPcap 4.2 和 WinPcap 4.1.3 给出“无法打开离线适配器:错误的转储文件格式”

我正在尝试在 FreeBSD 9.2 上使用带有 libpcap 版本 1.4.0 的 TShark 1.10.6 创建的 pcap 文件,并在 Windows 7 上使用 Visual Studio、SharpPcap 4.2、PacketDotNet 0.13 和 WinPcap 4.1.3 中的 c# 执行此操作.

引发的异常是Unable to open offline adapter: bad dump file format,它发生在例程 CaptureFileReaderDevice 中:

有趣的是,Wireshark 版本 1.10.3 在同一系统上——并且也使用同一版本的 WinPcap,能够打开文件!

什么会导致 SharpPcap 无法打开此文件?

编辑#1:

我更仔细地查看了 WireShark 的版本信息,显然它使用的是支持 AirPcap 的 WinPcap 版本。我相信 SharpPcap 包括 AirPcap,所以我想知道这是否会有所作为。

在 64 位 Windows 7 Service Pack 1 上运行,build 7601,WinPcap 版本 4.1.3(packet.dll 版本 4.1.0.2980),基于 libpcap 版本 1.0 分支 1_0_rel0b (20091008),GnuTLS 2.12.18,Gcrypt 1.4.6 , 没有 AirPcap。

另外,我正在为 32 位输出进行编译。

编辑#2:

使用 pcap 的 WireShark统计信息/摘要,它显示以下有关捕获的信息:

  • 操作系统:FreeBSD 9.2-RELEASE-p10
  • 捕获应用程序:Dumpcap 1.10.6(Git Rev Unknown from unknown)
0 投票
0 回答
461 浏览

c# - 如何使用 SharpPcap 获取局域网上所有活动机器的 IP

我正在尝试使用 SharpPcap 获取 LAN 上所有机器的 IP、端口和 MAC 地址,

我尝试根据我的 LAN 基本 IP 地址 ping 所有可能的 IP 地址,因为我认为 SharpPcap 可以捕获 ping 重播数据包然后解析它并获取所需的信息,但 SharpPcap 根本不捕获 ping 重播数据包!

基本上我正在使用此代码来捕获回复数据包:

https://github.com/rubystream/SharpPcap/blob/master/Examples/Example6.DumpTCP/Example6.DumpTCP.cs

0 投票
1 回答
574 浏览

c# - 获取 LibPcapLiveDevice 的 IP 地址

由于 SharpPcap 项目声称与 Mono 兼容,我决定让我的项目在 Mac 上运行。

为此,我必须制作WinPcapDeviceaLibPcapLiveDevice并将其映射WinPcap.dlllibpcap.dylib.

SharpPcap.dll.config:

代码:

问题是,该属性device.Addresses是空的,我找不到任何其他包含 IP 地址的属性。实际上几乎所有属性都是空的,除了设备名称和它的 MAC 地址。我不确定这是由 SharpPcap 还是 Libpcap 引起的问题。

编辑

正如 Guy Harris 建议的那样,我将 中使用的结构和类型PcapUnmanagedStructures.cs与 Apple OS 参考文档进行了比较。我试图调整它们,以便它们符合操作系统的规范:

我不确定我做对了,因为ipAddress仍然是空的: 截屏

编辑 2

盖伊哈里斯关于那个长场是正确的。这就是现在对我有用的方法:

请注意,我还将某些字段的名称前缀从sa更改为sin。我也将pad's name 更改为sin_zero. 毕竟很容易。

0 投票
1 回答
431 浏览

c# - 从 C# 中的特定端口获取流数据

我正在尝试从特定端口获取流数据,数据来自应用程序,我想捕获它们。实际上,我捕获了数据,但我猜它是编码的。

所以我尝试使用 UTF-8、Default、ASCII 等进行编码。

是否可以使用 SharpPcap 以可读格式查看数据?

这是我的示例代码:

任何帮助,将不胜感激。

问候,

0 投票
1 回答
1849 浏览

c# - 使用 SharpPcap 和 Packet.Net 发送 LLDP 数据包

因此,我花了一个下午尝试使用 SharpPcap 和 Packet.Net 在 C# 中发送 LLDP 数据包。

我想出了一个带有 NullReferenceException 的炸弹。我知道为什么,但我不知道该怎么办。

这是我的代码:

异常在第 36 行 ( device.SendPacket(ethernetPacket);)

原因是数据包的标头属性不能为空。在 Packet.cs 的第 229 行抛出异常,执行以下检查:

长话短说,我根本不知道应该将 header 属性设置为什么,Google 或其他任何地方都没有示例。

编辑: this.payloadPacketOrData.ThePacket.header为空。这是调用 产生的数据包LLDPPacket.RandomPacket();。不幸的是,标头属性没有设置器。

EDIT2:我正在使用来自 NuGet 的两个数据包的最新版本。

EDIT3: http ://wiki.wireshark.org/LinkLayerDiscoveryProtocol说

有趣的是,与上面提到的 LLDP 草案不同,最终的 LLDP 标准放弃了 LLDP 标头的概念,而是简单地要求存在某些 TLV。在各种草稿文件中,LLDP 标头应该包含一个版本字段。当前的 LLDP 标准不包括任何版本的概念。

0 投票
1 回答
446 浏览

ubuntu - Sharppcap如何使用ubuntu中的路由发送数据包?

我正在使用 Sharppcap 将多播 udp 数据包转换为单播,然后将数据包转发到另一个网络 我在两个网络之间建立了隧道 IPsec 连接,例如以下场景 IPsec-tools 和 racoon,它工作正常

图表

但是在 gateway1 中,我使用 sharpcap 运行一个简单的程序,它侦听 eth1 以捕获来自网络 A 的所有多播 udp 数据包,并将目标地址更改为 gateway2 的 eth1 地址,然后重新发送它,然后另一个网关将数据包更改为多播并将其转发到网络 B. 我这样做是因为 IPsec 隧道模式不适用于多播 例如在 gatway1 中:

修改后的数据包到达另一个网络中的目的地,但仍未在 gateway1 和 gateway2 之间的隧道中加密我认为解决方案是让操作系统处理发送数据包但我不知道如何使用 sharppcap 来做到这一点。

0 投票
1 回答
437 浏览

asp.net - localhost request packet not recognized by sharppcap?

I did asp.net program using mvc 4. I deployed in iis server as localhost; I want track HTTP Packet so I used SharpPcap.

Here is full code...

this code caputuring remote server http packet like google, stackoverflow, facebook communicate with my system.

However i want track packet with my system only as a localhost.

enter image description here

using enter image description here

any one can help? please...

0 投票
1 回答
314 浏览

c# - 如何理解一个数据包是带有 sharPcap 的 TCP CLOSE 数据包

我正在尝试读取从客户端发送到服务器的数据包。我在 C# 中使用SharpPcap。在这种情况下,我如何理解数据包是 TCP CLOSE 数据包: