从airodump-ng读取实时输出

6

当我执行命令 airodump-ng mon0 >> output.txt 时,output.txt 是空的。我需要能够运行 airodump-ng mon0 并在大约5秒钟后停止命令,然后访问其输出。有想法应该从哪里开始寻找?我使用的是bash。


你可以随时使用 iwlist 来获取 MAC 名称、Essids 等信息。而且你也可以使用 grep 进行筛选。 - DifferentPseudonym
3个回答

5

将命令作为后台进程启动,等待5秒钟,然后杀死后台进程。您可能需要重定向不同于STDOUT的流以将输出捕获到文件中。 此主题 提到了 STDERR(FD 2)。我无法在此处验证,但您可以使用 strace 检查描述符编号。命令应该显示类似于以下内容:

$ <b>strace airodump-ng mon0 2>&1 | grep ^write</b>
...
write(<b>2</b>, "...

write语句中的数字是airodump-ng写入的文件描述符。

脚本可能看起来像这样(假设需要重定向STDERR):

#!/bin/bash

{ airodump-ng mon0 2>> output.txt; } &
PID=$!

sleep 5

kill -TERM $PID
cat output.txt

5
您可以使用以下方法将输出写入文件:
airodump-ng [INTERFACE] -w [OUTPUT-PREFIX] --write-interval 30 -o csv

这将为您提供一个csv文件,文件名前缀为[OUTPUT-PREFIX]。该文件每30秒更新一次。如果您给出类似于/var/log/test的前缀,则文件将被放置在/var/log/中,并且会呈现为test-XX.csv的形式。
当airodump运行时,您应该可以通过任何其他工具访问输出文件(们)。

1

如果您使用的是 airodump-ng 1.2 rc4 版本,您应该使用以下命令:

timeout 5 airodump-ng -w my --output-format csv --write-interval 1   wlan1mon 

执行完此命令后,您可以通过查看my-01.csv来访问其输出。请注意,输出文件为CSV格式。

您的命令无法正常工作,因为airodump-ng将输出发送到stderr而不是stdout! 所以以下命令是您的修正版本:

airodump-ng mon0 &> output.txt

第一种方法更适合使用其他程序/应用程序解析输出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接