- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Java 中运行 tshark 时遇到问题。数据包似乎是批量到达的,而不是真正实时的(就像从终端运行时发生的那样)。我尝试了几种不同的方法:
ArrayList<String> command = new ArrayList<String>();
command.add("C:\\Program Files\\Wireshark\\tshark.exe");
ProcessBuilder pb = new ProcessBuilder(command);
Process process = pb.start();
BufferedReader br = null;
try {
//tried different numbers for BufferedReader's last parameter
br = new BufferedReader(new InputStreamReader(process.getInputStream()), 1);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch...
还尝试使用InputStream的available()方法,如What does InputStream.available() do in Java?中所示。
我还使用以下代码尝试了 NuProcess 库:
NuProcessBuilder pb = new NuProcessBuilder(command);
ProcessHandler processHandler = new ProcessHandler();
pb.setProcessListener(processHandler);
NuProcess process = pb.start();
try {
process.waitFor(0, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
private class ProcessHandler extends NuAbstractProcessHandler {
private NuProcess nuProcess;
@Override
public void onStart(NuProcess nuProcess) {
this.nuProcess = nuProcess;
}
@Override
public void onStdout(ByteBuffer buffer) {
if (buffer == null)
return;
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
System.out.println(new String(bytes));
}
}
这些方法都不起作用。仅当嗅探到大约 50 个数据包时,数据包才会始终到达,就好像已缓冲一样。
您知道为什么会发生这种情况以及如何解决吗?这真是令人沮丧。我花了很多时间在 SO 上查看类似的问题,但没有一个有帮助。
您发现我的代码中有任何错误吗?它适用于您的情况吗?
最佳答案
正如 tshark 手册页所述:
−l Flush the standard output after the information for each packet is
printed. (This is not, strictly speaking, line‐buffered if −V was
specified; however, it is the same as line‐buffered if −V wasn’t
specified, as only one line is printed for each packet, and, as −l
is normally used when piping a live capture to a program or script,
so that output for a packet shows up as soon as the packet is seen
and dissected, it should work just as well as true line‐buffering.
We do this as a workaround for a deficiency in the Microsoft Visual
C++ C library.)
This may be useful when piping the output of TShark to another
program, as it means that the program to which the output is piped
will see the dissected data for a packet as soon as TShark sees the
packet and generates that output, rather than seeing it only when
the standard output buffer containing that data fills up.
尝试使用 -l
命令行参数运行 tshark。
关于java - 如何在Java中运行tshark来实时获取数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931729/
我正在尝试扩展 tshark 的输出。第一轮我还没有找到简单的解决方案,只有那个可以通过 -e 选项提取字段,因此以下命令输出 车架号 从捕获开始的时间 源IP地址 目的IP地址 http 请求 ur
我已经尝试了很多来列出 ip conversations在 .cap file with Tshark 。我可以使用 *wireshark -> statistics -> conversations
我需要在满足某个条件后停止 tshark(wireshark 的命令行等价物)。 从 tshark 手册页中,我发现停止条件可以应用于持续时间、文件、文件大小和多文件模式。 是否可以通过捕获过滤器应用
tshark 中的过滤器 -Y、-2 和 -R 在 Wireshark 版本 2.XX 中容易混淆。 在 1.8 版本中,我们可以应用多个过滤器并使用以下命令将过滤后的数据包保存在 csv 文件中:
因为使用 tshark 保存捕获的数据时不支持显示过滤器 我正在尝试创建可以在 Wireshark 中读取的有效 cap 文件。 我用 tshark -i wlan2 -V -x -q -Y "rad
我正在尝试使用 python 脚本在两台主机之间捕获数据包。功能如下: def wire_cap(IP1,IP2,op_fold,file_name,duration): # invoke tsha
是否可以使用 tshark 选项或类似选项获取每个字段(在数据包内)的 -T fields 输出? 例如对于数据包/重建中的每个字段,我想要这样的东西: eth.src:f2:3c:91:96:fd:
我正在使用 TShark 命令行来开始新的捕获。如果我使用此命令 tshark.exe -w C:\test.pcap -i (my interface number) 我将捕获保存在我的硬盘上,这是
使用 tshark,我如何让它解码并显示应用层? 例如,我可以使用以下方法捕获和解码 snmp 流量: sudo tshark -V -i lo -d udp.port==161,snmp 这将解码所
我正在尝试使用类似这样的 CLI 使用 tshark 捕获流量: tshark -i 1 -w Outputfile.pcap 如果我执行此命令,提示不会返回,因为 tshark 会为我提供有关数据包
我正在尝试使用带有一些标志的 tshark,并为每个过滤的跟踪获取时间戳。我正在使用它来过滤系统中的所有 DNS 查询。我无法获得时间戳以及过滤器工作。例如,如果我尝试类似 tshark -t ad
我正在尝试将 tshark 转储中的网络流量归因于与相应流量相关联的登录用户。 我在企业网络上运行 Ubuntu 服务器,用户通过 RDP 或 SSH 使用 x-forwarding 登录。我的应用程
我试图只捕获包含对某个 API 端点的请求的数据包,因此尝试使用以下内容进行过滤: tshark -i 2 -f 'port 80' -T pdml http.request.uri contain
今年 2 月 15 日,TShark 增加了为 Elasticsearch 生成映射文件的支持,选项为 -G elastic-mapping。 .问题是我已经尝试过了,但是当您尝试 PUT 时 Ela
现在我正在使用 tshark -i wlan0 -c 10 -T fields -e ip.src -e ip.dst -e ip.proto -e tcp.srcport -e tcp.dstpor
我想将 tshark 命令的输出保存在变量中。 例如,如果我运行: tshark -r capture.pcap -qz io,stat,0 我会得到: Time |frames
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
所以我的命令是: tshark -Y 'wlan.fc.type_subtype==0x04' 所以我的输出是: 21401 205.735966 Apple_90:ea:8e -> Broadcas
我有一个相当大的 Pcap 文件。我只想读取这个文件中的一个数据包,例如第10个数据包。 我有一个像这样的 tshark 命令: tshark -r myfile.pcap frame.number
Tshark 是一个命令行数据包嗅探器。我正在尝试找到一种方法来从数据包中获取信息,将其放入变量中并对其执行一些正则表达式。 现在,我从 tshark 得到这个: Capturing on eth0
我是一名优秀的程序员,十分优秀!