问题标签 [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.

0 投票
1 回答
2044 浏览

python - 帮助 scapy 和 pcapy

我是 scapy 和 pcapy 的新手。作为一个项目,我必须使用 scapy 发送一个 ICMP 数据包并使用 pcapy 捕获它。我必须比较发送者和接收者之间的时间戳来计算网络延迟。

我不知道我该怎么做。任何帮助将不胜感激。

谢谢你。

以下命令我曾经将 ICMP 数据包发送到我使用类型 13 作为时间戳的目的地。

a=IP(dst="172.24.50.76")/ICMP(类型=13)

sr1(a) 开始发射:完成发送 1 个数据包。收到 1 个数据包,得到 1 个答案,剩余 0 个数据包

ts_ori=22:40:35.556 ts_rx=526:4:13.700 ts_tx=526:4:13.700

1)以上ts_rx和ts_tx时间戳显示的时间相同,那么如何计算延迟呢?2)其次,我如何增加数据包的大小,因为我可以计算不同数据包大小的延迟。

我希望你很清楚。

0 投票
0 回答
1192 浏览

android - 在 Android 设备上捕获 802.11 数据包标头?

我想使用 tcpdump 类型的应用程序在 Android 上捕获 WiFi 数据包标头。我正在使用 HTC 梦想手机(Android 1.6,Wi-Fi (802.11b/g),使用德州仪器 WL1251B 芯片组)。默认的 TI 驱动程序在使用 tcpdump 在设备上进行数据包捕获时过滤 802.11 数据包标头。有人知道使用默认 TI 驱动程序捕获 802.11 标头的方法吗?

另外,我正在查看http://bobcopeland.com/android_wifi.html,其中包含在 android 设备上安装基于 mac80211 的驱动程序的说明。如本页所述,我按照说明创建内核模块并将它们加载到手机上。但是,这样做后我无法激活WiFi接口(虽然我看到“wlan0”接口表明mac80211驱动程序已加载)。

所以,我被困在这一点上。有人可以建议我使用基于 TI/mac80211 的驱动程序在 Android 手机上捕获 802.11 数据包标头吗?

0 投票
2 回答
6267 浏览

python - Python 数据包嗅探器

我应该使用什么 Python 模块来嗅探数据包?我不需要任何太复杂的东西,我只需要从一些发送到我的计算机的数据包中获取数据。我正在使用 Python 2.6 和 Windows 7,并且我已经安装了 WinPcap 4.1.2。

到目前为止,我已经看到有人建议使用 pcapy 和 pypcap,但是当我尝试安装它们时,它们都失败了,并告诉我我缺少 msvcr71.dll,即使它在我的计算机上也是如此。另外,python-libpcap sourceforge 页面似乎不可用,所以我不能尝试。

0 投票
1 回答
34090 浏览

python - 在数据包中添加有效负载

我可以使用 scapy 将图像或文档(以 MB 为单位)作为数据包中的数据插入吗?

这就是我发送数据的方式。

0 投票
1 回答
1605 浏览

network-programming - Getting data from nfq_get_payload

When I use 'nfq_get_payload(nfqData, &data);' and then print 'data', all I get are E's, is there something else that I should be doing to get the payload?

0 投票
1 回答
3883 浏览

packet - 使用 netfilter 队列修改数据包?

我目前正在尝试在用户空间中使用带有 libnetfilter_queue 的代码来修改在 iptables 的 NFQUEUE 目标中排队的数据包。但是,我不知道如何去做。

我已将其设置为使用 NFQNL_COPY_PACKET 复制数据包,如果我要修改复制的数据包,它是否会通过函数 nfq_set_verdict() 自动发送回内核?

此外,我之前曾从 pcap 文件中提取数据包,但是我注意到从 nfq_get_payload() 获得的数据似乎非常不同。有谁知道如何剖析数据?

0 投票
1 回答
2609 浏览

packet-capture - 如何在libpcap数据包接收功能中定期超时

我在 stackoverflow.com 中发现这篇文章 使用 Pcap 监听超时

我面临一个类似(但不同)的问题:使用 libpcap 数据包接收功能接收捕获的数据包时,什么是 GENERIC(与平台无关)方法定期超时?实际上,我想知道是否可以从 pcap_dispatch(pcap_t...) / pcap_next_ex(pcap_t...) 定期超时?如果可能的话,我可以像使用经典的 select(...timeout) 函数(http://linux.die.net/man/2/select)一样使用它们。

另外,从官方网页(http://www.tcpdump.org/pcap3_man.html),我发现原来的超时机制被认为是错误的和特定于平台的(这很糟糕,因为我的程序可能在不同的 Linux 和Unix box):
"... ... to_ms 以毫秒为单位指定读取超时。读取超时用于安排读取不一定在看到数据包时立即返回,而是等待一段时间以允许更多数据包到达并在一次操作中从操作系统内核读取多个数据包。并非所有平台都支持读取超时;在不支持的平台上,读取超时被忽略......
注意:读取实时捕获时,读取超时时 pcap_dispatch() 不一定会返回;在某些平台上,不支持读取超时,而在其他平台上,计时器在至少一个数据包到达之前不会启动。这意味着不应在例如交互式应用程序中使用读取超时,以允许数据包捕获循环定期“轮询”用户输入,因为无法保证 pcap_dispatch() 将在超时到期后返回。 ……”

因此,我想我需要自己实现 GENERIC(平台无关)超时机制,如下所示?

  1. 使用 pcap_open_live() 创建一个 pcap_t 结构。
  2. 使用 pcap_setnonblock(pcap_t...) 将其设置为非阻塞模式。
  3. 使用已注册的 OS 计时器轮询此非阻塞 pcap_t,例如:

注册 OS timer_x,并重置 timer_x;

而(1){

if(timer_x timeout) {做一些需要定期做的事情;重置 timer_x;}

通过调用 pcap_dispatch(pcap_t...)/pcap_next_ex(pcap_t...) 来轮询 pcap_t 以​​接收一些数据包;
对这些数据包做点什么;

}//while(1) 结束

问候,
直流

0 投票
1 回答
1148 浏览

networking - tshark:保存捕获的数据包时无法应用过滤器

我们有一个命令用于以前版本的 wireshark (1) 但不适用于最新版本 (1.6.1)

"C:\Program Files\Wireshark\tshark.exe" -i \Device\NPF_{282F8D86-F9CC-4575-8F20-7E9F5B04BB89} -l -q -R "h245" -S -T pdml -w C:\capture_0 .cap "(主机 172.24.161.49 或主机 172.24.161.34 而不是端口 80 而不是端口 23) 和 tcp" 1>C:\capture_0.xml

它给出错误消息:“tshark:捕获和保存捕获的数据包时不支持读取过滤器。”

这个命令有什么问题?

仅供参考 - 我确实在这台机器上安装了完整的 cygwin。会有什么不同吗?

0 投票
1 回答
892 浏览

networking - 不同类型的数据包

我正在使用嗅探器,我想知道有没有办法从访问网站时出现的数据包中分辨出下载数据包?标题不一样吗?如果是这样,有什么区别?大小不一样吗?任何澄清表示赞赏。

0 投票
3 回答
1549 浏览

awk - 到 awk 的管道挂起

我正在尝试将tshark输出通过管道传输到awk. tshark 命令本身工作正常,当通过管道传输到其他程序时cat,它工作正常(实时打印输出)。但是,当通过管道传输到 awk 时,它挂起并且没有任何反应。

这是一个更简单的版本:

并且比较,以下工作正常(虽然不是很有用):

提前致谢。