问题标签 [packet-capture]
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.
linux - 在 Linux 上捕获网络流量
问:我有一台 Windows 笔记本电脑、一台 Linux 笔记本电脑和一个无线路由器。
现在我想“调查”hotmail/windows live 协议。我想要做的是将网络流量从windows笔记本电脑通过以太网路由到linux笔记本电脑,在Linux电脑上捕获它,无线转发到路由器,从linux电脑上的路由器接收hotmail响应并将其转发到窗户电脑。
我怎么做?本质上,在 Windows 笔记本电脑和路由器之间切换 Linux 笔记本电脑,以捕获网络流量?
哪个程序最适合捕获/分析?请注意,无论出于何种原因,在 windows 计算机上使用 winpcap 进行数据包捕获都不起作用...
shell - 从 tcpflow 输出中提取有效负载
Tcpflow 输出一堆文件,其中许多是来自 Web 服务器的 HTTP 响应。在内部,它们包含 HTTP 标头,包括 Content-type: 和其他重要的标头。我正在尝试编写一个脚本,该脚本可以仅提取有效负载数据(即图像/jpeg;文本/html;等)并将其保存到文件中[可选:具有适当的名称和文件扩展名]。
EOL 字符是 \r\n (CRLF),因此这使得它难以在 GNU 发行版中使用(根据我的经验)。
我一直在尝试以下方式:
删除从 HTTP (incl) 开头到 \r\n\r\n (incl) 结尾的所有文本,但我没有找到运气。我正在寻求任何在sed
和/或方面有良好经验的人的帮助awk
。我对 Perl 的经验为零,我更愿意为此使用通用的 GNU 命令行实用程序
在此处查找示例 tcpflow 输出文件。(坏链接)
谢谢,
费利佩
c++ - 使用 tcpdump 捕获服务器-客户端通信
我编写了一个简单的服务器和客户端应用程序,可以在 TCP、DCCP 和 UDP 协议之间切换。目标是将文件从一个文件传输到另一个文件并测量每个协议的流量,因此我可以针对不同的网络设置比较它们(我大致知道结果应该是什么,但我需要准确的数字/图表)。无论如何,在不同的计算机上启动这两个应用程序并启动 tcpdump 后,我只能从 4GB 文件中获取 tcpdump-log 的前几 MB(~50MB)。这些应用程序是用标准的 C/C++ 代码编写的,可以在网络上的任何地方找到。可能是什么问题或我在这里做错了什么?
--编辑
我使用的命令行是:
tcpdump仅在前 ~55 秒内捕获数据包。那是客户端需要将文件发送到套接字的时间。之后它停止,即使服务器继续接收文件并将其写入硬盘驱动器。
--编辑2
源代码:
client.cpp
server.cpp
common.hpp
common.cpp
--编辑最终
正如你们中的许多人所指出的(正如我所怀疑的),源代码中有几个误解/错误。在我清理它(或几乎重写它)之后,它可以根据需要与 tcpdump 一起使用。我会接受@Laurent Parenteau 的回答,但仅限于第 5 点。因为它与问题唯一相关。如果有人对正确的代码感兴趣,这里是:
源代码编辑
network-programming - 如何在Windows中将无线数据包转发到以太网接口?
如何在Windows中将无线数据包转发到以太网接口?
c# - H.225用户信息包解析
我正在使用 PacketDotNet 和 SharpPCap 编写一些代码来解析 VOIP 电话系统的 H.225 数据包。我一直在使用 Wireshark 查看结构,但我被卡住了。我一直用这个作为参考。
我看到的大多数 H.225 数据包都是带有空消息正文的用户信息类型,实际信息显然显示为 Wireshark 中的 NonStandardControls 列表。我以为我只是提取这些控件并稍后解析它们,但我真的不知道它们从哪里开始。
在几乎所有情况下,项目都从 H.225 数据的第 10 个字节开始。每个项目似乎都以记录为 2 个字节的长度开始。但是,我收到一个数据包,其中包含从第 11 个字节开始的项目。
我在这个数据包中看到的唯一区别是消息正文中所谓的开放类型长度,其值为 1,而其余部分似乎都是 0。这些项目会以 10 + 开放类型长度开始吗?是否有一些文件解释了这种开放类型长度的用途?
谢谢。
java - 如何自定义 compareTo 方法以考虑双向流动
如果我需要用这个逻辑自定义我的代码
因为我要考虑双向流,从源到目的地的数据包和从目的地到源的数据包属于流。
我应该如何更改我的代码?
network-programming - 如果我想构建流量整形器和分析器,我应该学习和寻找什么
我喜欢添加和构建类似 WIPFW 的东西,但使用流量整形选项我应该在 Windows 驱动程序编程中学习什么?是否有任何代码包装器可以更轻松地对驱动程序进行编程?
c# - 如何使用 HTTP 在 C# 中控制设备的嵌入式控制软件?
我有一个带有嵌入式用户控件的硬件,通过在网络浏览器中输入设备的 IP 地址来访问。该设备通过 x-over 以太网电缆和静态 IP 直接连接到我的 PC。我需要将设备的控制集成到我的 C# 应用程序中。
我的想法是使用数据包嗅探器来监控我的 PC 和设备之间的流量,同时在我的网络浏览器中使用设备的控件。然后找出我的 PC 发送的哪些数据包与我当时使用的控件相对应。然后我可以在我的 C# 应用程序中创建一类 HTTP 或 TCP 数据包,并使用 Socket 类将它们发送到设备。
但是,我对网络协议没有太多经验,所以当我使用 Wireshark 监控我的 PC 和设备之间的流量时,我什至不知道从哪里开始找出哪些数据包做了什么。有没有人有任何想法?我对任何事情都持开放态度。谢谢!!
编辑:很难准确解释我的设备是什么,但它基本上是一个复杂的传感器,通常用于工业应用,所以它可能使用我比较熟悉的 Modbus。你知道我如何通过检查数据包来判断正在使用哪个协议吗?我注意到(使用 Wireshark)从我的 PC 发送到设备的数据包以 1 个 HTTP 数据包,然后是 5 个 TCP 数据包的模式发生,并且只要在我的浏览器中打开控件,就会重复相同的序列。是否有任何资源可以让我更好地了解正在发生的事情?
linux - 类似于 Notepad++ 的 Linux 文本编辑器,用于处理数据包捕获
我正在寻找 Notepad++ 在 Linux 文本编辑器中具有的非常具体的功能。
如果您用于tcpdump -x
获取网络流量的十六进制转储,Notepad++ 允许您通过 -mouse-select 轻松剥离左十六进制Alt,然后Delete. 一些简短的替换空格和换行符可以让你改变它:
...进入这个,更具可读性:
那么,有没有人知道可以轻松剪切此类数据的 Linux 文本编辑器?
java - 如何以编程方式从被动嗅探中收集数据包?
我想测试我刚刚写的服务器针对中间人攻击的漏洞。
我如何(在 Mac OS X 上)分析数据包。(我将检查他们的去向,如果他们正在前往我的服务器,则从中提取信息,并查看所有可用的内容)然后我将找到一种加密所有内容的方法......但首先要做的事情。
任何有关数据包嗅探的帮助将不胜感激。
我的首选语言是java。但我可以做 C++。
所以,我的问题是:“是否有任何类型的 API / 库可以与之交互?”
就像,如果我能做 PacketSniffer ps = new PacketSniffer(); 这将是惊人的。