PCAP以太网类型返回
我正在尝试识别我要收到的数据包的以太类型.以太类型ID为608,在Ethertype.h(libpcap 1.2.1)中没有相应的定义.收到的大多数数据包都有一种8种类型,在Ethertype.h中又没有相应的定义.有人对这可能是什么原因有什么想法,还是我应该通过错误报告与TCPDUMP联系. 解决方案 您要捕获的pcap_t上的返回值是多少? 如果不是DLT_EN10MB(具有值1),则您的数据包不是以太网数据包,而您不应该将其解析为以太网数据包. 如果是DLT_EN10MB,那是608还是十进制608?如果是十进制的608,则是一个长度字段,而不是类型字段.相同的8个,它是相同的十进制或十六进制,因此是长度值而不是类型值. 其他解决方案 来自manpage: " ntohs()函数将未签名的短整数网络从网络字节顺序转换为主机字节顺序." 来自我的代码: if(ntohs(ethernet-> ether_type)== 0x0800)..
8 2024-04-09
编程技术问答社区
在C语言中设置TCP接收窗口并在Linux中使用tcpdump工作
我正在运行一个运行2.6.9-55.elsmp,x86_64的Linux盒. 我试图通过使用SetSockopt()函数来设置TCP接收窗口.我尝试以下内容: rwnd = 1024; setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&rwnd, sizeof(rwnd)); 上面的代码段位于从服务器接收数据的客户端程序中.当我启动该程序以接收和观察TCPDUMP输出时,我会观察到这样的窗口谈判: 11:34:40.257755 IP clientReceiver.42464 > serverSender.8991: S 1742042788:1742042788(0) win 5840 我们看到,客户程序实际上正在协商一个与我在客户端程序中设置的窗口不同的窗口.但是,从我如何解释史蒂文的文本(" TCP
10 2024-04-07
编程技术问答社区
读取tcpdump头的长度命令
这是我的第一篇文章,我绝对 所以,我有以下tcpdump命令,我想了解它的要求(简单英语). tcpdump'tcp [12]&80!= 0' 它是否要求在字节偏移12(TCP标头长度和保留位)上获取所有TCP数据包,其值至少为80?我相信我错了. 如果以上是真的,有人可以写出可能的二进制文件吗? 80给出01010000.我的导师还写下了:1111 0000和01110000.但我不知道为什么... 如果至少80个,则可能是无数的二进制组合... 解决方案 是否要求在字节偏移12(TCP标头长度和保留位)上抓住所有TCP数据包,其值至少为80,这是true 否. 80在十六进制中为50,因此相当于tcp[12] & 0x50 !=0,它测试了TCP标头12个字节中的0100 0000位还是0001 0000位.确实是0101 0000,但也是1111 0000和0111 0000,以及0100 0000和0001 0000和0100 1
6 2024-03-30
编程技术问答社区
交叉编译tcpdump for x86
我需要tcpdump二进制android-x86. 这是我所做的: sudo apt-get install gcc-i686-linux-android sudo apt-get install byacc sudo apt-get install flex wget http://www.tcpdump.org/release/tcpdump-4.9.0.tar.gz wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz tar zxvf tcpdump-4.9.0.tar.gz tar zxvf libpcap-1.8.1.tar.gz cd libpcap-1.8.1 export CC=gcc ./configure --host=i686-pc-linux-gnu --with-pcap=linux make cd .. cd tcpdump-4.9.0 export ac_cv_linux_vers
16 2024-03-30
编程技术问答社区
将tcpdump输出写入压缩/gziped文件
我想将tcpdump的文本输出写入压缩文件. 首先,我尝试了最明显的: # tcpdump -l -i eth0 | gzip -c > test.gz tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes ^C63 packets captured 244 packets received by filter 0 packets dropped by kernel 4 packets dropped by interface # file test.gz test.gz: empty # 然后,我找到了Debian 9 (Stretch)的以下解决方案: # tcpdump -l -i eth0 | ( gzip -c
14 2024-03-28
编程技术问答社区
如何使用tcpdump捕获所有的HTTP数据包
我想使用一些参数运行tcpdump(仍然不知道要使用什么),然后加载stackoverflow.com页面. 输出应为HTTP通信.稍后,我想将其用作外壳脚本,因此,每当我想检查site site.com的HTTP通信时,我都可以运行script.sh site.com. HTTP通信应该足够简单.这样: GET /questions/9241391/how-to-capture-all-the-http-communication-data-using-tcp-dump Host: stackoverflow.com ... ... HTTP/1.1 200 OK Cache-Control: public, max-age=60 Content-Length: 35061 Content-Type: text/html; charset=utf-8 Expires: Sat, 11 Feb 2012 15:36:46 GMT Last-Modified: Sat
14 2024-03-28
编程技术问答社区
从实时tcpdump捕获中提取唯一的IP
我正在使用以下命令从实时TCPDUMP CAPTURE 输出IP sudo tcpdump -nn -q ip -l | awk '{print $3; fflush(stdout)}' >> ips.txt 我得到以下输出 192.168.0.100.50771 192.168.0.100.50770 192.168.0.100.50759 需要2件事: 仅提取IPS,而不提取端口. 生成具有唯一IP的文件,无重复,如果可以选择. 预先感谢您 解决方案 要从TCPDUMP提取唯一的IP,您可以使用: awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }' YOURFILE 因此,您的命令看到唯一的IPS Live是: sudo tcpdump -nn
6 2024-03-22
编程技术问答社区
libpcap可以为iPhone/armv6编译吗?
尝试编译使用PCAP.H.的基本程序.我已经在Mac OSX框上设置了环境,该框使用iPhone 3.1.3 SDK用于iPhone 3GS.我还将libpcap安装到〜/libpcap上,因此我可以告诉GCC使用-i标志在哪里寻找标题.但是,它因LD警告而失败,说该文件不是所需的架构. 我正在使用以下行进行编译: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -I /Users/abnev/libpcap/include -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk -o pcap pcap.c -lpcap 生成错误的是: ld: warning: in /Developer/Platforms/iPhoneOS.platform/Develope
4 2024-03-03
编程技术问答社区
在Windows10上使用tcpdump-option时,Android模拟器无法启动
我可以使用Windows 10上的CMD运行AVD: emulator -avd avdmy 但是,当我想使用tcpdump捕获网络流量时,模拟器无法启动: emulator -avd avdmy -tcpdump ~/test.cap qemu-system-i386.exe: -tcpdump: invalid option 我没有问题运行模拟器本身.这可能是一个错误,还是我错过了什么?我尝试过的每个AVD都会出现问题.我已经检查了仿真器-HELP,我确定-tcpdump是一个选项.我的问题是,我需要在窗户上安装tcpdump,然后才能使它工作或缺少其他东西? 解决方案 在最新的Android模拟器中,选项" -tcpdump"是无效的.我猜它只能与金鱼一起使用.您可以尝试使用" -tcpdump"的选项" -engine Classic".
12 2024-02-19
编程技术问答社区
TCPDump-Buffer上的ReadLine有时会阻塞,直到杀死tcpdump为止。
我使用Android应用中的TCPDUMP遇到了问题. 它应该按行读取TCPDUMP的输出,并在我的应用程序中对其进行处理. 问题是: 有时代码效果很好,它立即读取捕获的数据包.但是有时,读取线会块,直到我从Linux-Console(Killall tcpdump)杀死TCPDUMP过程.这样做之后,我的循环是针对每行(有时为10,有时为1或2的)处理的 - 这意味着,读取线应该有效,但没有. 我读到有关类似问题的信息,但没有找到解决此问题的任何解决方案... 谢谢! public class ListenActivity extends Activity { static ArrayList packetBuffer = new ArrayList(); static Process tcpDumpProcess = null; static ListenThread thread = null; public static final
12 2024-02-06
编程技术问答社区
我可以用tcpdump来获取HTTP请求、响应头和响应体吗?
我正在使用tcpdump通过执行以下命令来获取HTTP数据: sudo tcpdump -A -s 1492 dst port 80 上述命令的结果: 标题,我认为请求和响应标头. 不可读的数据. url GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg. 我需要一个更清晰的结果,例如,可读请求>响应标头>响应主体等. 如何过滤结果? 解决方案 HTTP GET&HTTP POST有TCPDUMP过滤器(或两个Plus Message Message主体): 运行man tcpdump | less -Ip examples查看一些示例 这是HTTP GET的TCPDUMP滤镜(GET = 0x47,0x45,0x45,0x54,0x20): sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0
24 2024-02-02
编程技术问答社区
有什么办法可以将安卓WIFI(droid手机)放入杂乱的监控模式?
对于几年前的计算机科学信息战班,我编写了一个Python脚本,该脚本在libpcap滥交数据包捕获文件上播放以解析Facebook聊天流量(Earlang calt in Clear Text中通过了),并认为一个有趣的项目将是一个有趣的项目将程序移植到Android. 我想在Java中重写它,但找不到有关直接在手机上捕获数据包的任何信息. 据我所知, 解决方案 无法将wifi nic从公共API中进行监视模式.但是,根据手机使用的设备,如果您具有root访问权限,则可以将系统放入监视模式. 查看Android-Wifi-Thether项目中的代码: Res/Raw/Directory中有一些Linux二进制文件和配置文件,这些二进制文件已在Java中复制并由该应用程序控制. 请记住,您需要扎根手机才能工作.
8 2024-01-31
编程技术问答社区
监测安卓手机的网络活动
我想监视我的Android手机的网络流量.我当时在想将tcpdump用于Android,但我不确定是否必须交叉编译手机. 另一个问题是以下问题,如果我想监视某个应用程序的trafic数据,则有任何命令可以这样做? 解决方案 tcpdump是我最喜欢的分析网络的工具之一,但是如果您发现Android难以交叉编译TCPDUMP,我会推荐您使用市场上的某些应用程序. 这些是我正在谈论的应用: 鲨鱼:适用于Android手机的Wireshark的小版本).该程序将创建一个 *.pcap,您可以使用Wireshark上的PC上读取文件. 鲨鱼阅读器:此程序允许您直接在Android手机中读取 *.pcap. 鲨鱼应用程序可与扎根设备一起使用,因此,如果要安装它,请确保您已经扎根了. 祝你好运;) 其他解决方案 如果您是通过模拟器进行的,则可以这样做: 运行emulator -tcpdump emulator.cap -avd my_avd将所有
8 2024-01-27
编程技术问答社区
对.cap文件进行IP过滤
如何在现有.CAP文件上应用过滤器?因此,我有一个.CAP文件,并且想滤除一个特定的IP,这是什么命令.我正在使用Wireshark. 谢谢 解决方案 ip.addr == 127.15.16.13 有时您可能需要ip.src == .....或ip.dst == ... 之后,您可以通过选择文件 - >保存AS->数据包范围 - >显示 来保存过滤的数据包
8 2023-12-10
编程技术问答社区
我如何使用tcpreplay以100MBps、500MBps和1Gbps的速度泵送流量?
我使用了-r和-k选项,但是当我使用tcpdump捕获抽水流量以及我看到的数据包的数量似乎与我期望的数据包数不匹配时,它似乎无法正常工作.框架. 解决方案 首先确保您使用的是最新版本,可用在这里.您将需要使用-K和-Mbps(或-m)选项,例如: # tcpreplay -i eth7 -K --mbps 1000 smallFlows.pcap File Cache is enabled Actual: 14261 packets (9216531 bytes) sent in 0.073761 seconds. Rated: 124951275.0 Bps, 999.61 Mbps, 193340.65 pps Flows: 1209 flows, 16390.77 fps, 14243 flow packets, 18 non-flow Statistics for network device: eth7 Attempted packets:
28 2023-12-10
编程技术问答社区
网络捕获工具集,该工具集存储缓冲区并保存在触发器上
我可以使用一个简单的工具或实用程序来缓冲网络捕获的最后3分钟吗? ?我们有一个网络冻结,发生在40分钟至14小时之间,我想在检测到的事件时间周围捕获网络流量,以更好地了解情况.我过去曾经使用过TCPDUMP和Wireshark,但总是手动触发捕获的开始和停止,我需要停止时间才能自动化,并希望避免录制一堆无关的数据.如果这很重要,我们的大多数开发环境都使用Ubuntu 18.04. 此时,我们不限于任何语言或从头开始构建工具. 解决方案 您可以尝试运行一个脚本,该脚本启动2个实例的 #!/bin/sh echo "Starting capture instance ..." dumpcap -i eth0 -f "TBD Capture Filter" -b duration:180 -b files:2 -w file.pcapng & echo "Starting event instance ..." dumpcap -i eth0 -f "TBD Event Capt
12 2023-12-10
编程技术问答社区
如何将Wireshark处理过的数据转发给Python? 用什么样的方法?
Wireshark是网络流量分析的强大工具.但是从我的练习中,它只能导出处理后的数据(这意味着,告诉您哪个部分,例如" data":123456等).实时(或实时90%)到其他应用程序(例如我的Python脚本)进一步使用的TCP数据包(可以通过TCP向前?管道?) 我不知道如何准确地完成它.有人愿意为我提供帮助吗?谢谢〜 ps: 没有得到一些快照,因为我什么都没显示,甚至是代码... 解决方案 tldr ;管道我目前正在从事一个名为 pdml2flow 的项目出色地.对于项目,我依靠TSHARK的PDML输出(XML).将管道输送到PDML2Flow: $ tshark -i interface -Tpdml | pdml2flow +json 我选择了PDML,因为当我开始时它是最完整,最稳定的.但是如今,也有许多输出格式(例如JSON或PostScript).来自 tshark(1): -T ek|fields|json|jsonraw|pdml
12 2023-12-10
编程技术问答社区
数据包大于配置的MTU
我制作了一个TCPDUMP和捕获的数据包,配置的MTU为2140.我正在使用Wireshark分析PCAP文件. 根据配置的MTU,数据包的预期最大尺寸应为2154(2140字节+14以太网标头字节).但是我看到大小大于2154的数据包(EX 9010字节),在分析时,我发现这些数据包是在我制作tcpdump的机器上生成的(例如A),并具有到达另一台计算机的目的地(例如,B).我希望将数据包分散在将其发送到另一个主机之前.我在网上找到了一些解释,说TCPDUMP在NIC崩溃之前捕获了数据包,尽管这似乎是一个有效的解释,但在我的情况下,这似乎是矛盾的,因为在机器A上,我从B中收到了大于2154的包装.为什么机器A发送和接收数据包大于配置的MTU. 解决方案 您看到的很可能是TCP段重新组装卸货的结果.这是一些具有匹配驱动程序的网卡上的功能. 的想法是,许多TCP段的重组都在NIC本身中处理.事实证明,这在减少CPU/OS侧的开销方面非常有效,因为网络驱动程序仅需要处理,
22 2023-12-10
编程技术问答社区
用 python 解析大型 tcpdump 文件
我有一个较大的tcpdump捕获(在.dump文件中具有> 1GB的数据),我想解析以获取一些统计信息,例如发送流量中涉及的不同IP的数量等.我想知道是否知道是否有一种干净的方法可以通过Python访问二进制跟踪文件中的此类数据? 我尝试这样做的方式是运行 tcpdump -r something.dump > myfile.out 然后尝试使用Python代码来解析myfile.以获取我想要的数据.但是上面的命令需要永远完成,并想使用更好的方法来完成. 编辑:Wireshark试图打开文件时的内存不足. 解决方案 看一下 dpkt module .它应该能够按需解析PCAP文件.乔恩·奥伯海德(Jon Oberheide)有一个很棒的
12 2023-12-10
编程技术问答社区
使用wireshark或其他工具绘制RTT柱状图
我有一个小的办公网络,我正在遇到一个巨大的互联网链接延迟.我们有一个简单的网络拓扑:配置为运行Ubuntu Server 10.10、2个网络卡的路由器的计算机(一张到Internet链接,另一个转到Office Network)和一个连接20台计算机的交换机.我在路由器上收集了一个巨大的tcpdump日志,我想用的RTT时间绘制一个直方图, all tcp流,以试图找出解决该延迟问题的最佳解决方案.那么,有人可以告诉我如何使用Wireshark或其他工具做到这一点? 解决方案 Wireshark或Tshark可以使用 tcp.analysis.ack_rtt 为您提供每个接收到的ACK数据包的TCP RTT,该 可以测量捕获TCP数据包与该数据包的ACK之间的时间增量. 您需要谨慎,因为您的大多数ACK数据包都来自 您的Office Machines Acking acking acking acking acking acking acking acking ackin
32 2023-12-10
编程技术问答社区