【问题标题】:Reading realtime output from airodump-ng从 airodump-ng 读取实时输出
【发布时间】:2017-04-24 23:25:43
【问题描述】:

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

【问题讨论】:

  • 您始终可以将 iwlist 用于 MAC 名称、Essid 等。您也可以使用 grep。

标签: bash redirect file-io


【解决方案1】:

将命令作为后台进程启动,休眠 5 秒,然后终止后台进程。您可能需要重定向与 STDOUT 不同的流来捕获文件中的输出。 This thread 提到 STDERR(即 FD 2)。我无法在此处验证这一点,但您可以使用strace 检查描述符编号。该命令应显示如下内容:

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

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

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

#!/bin/bash

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

sleep 5

kill -TERM $PID
cat output.txt

【讨论】:

    【解决方案2】:

    您可以使用以下命令将输出写入文件:

    airodump-ng [INTERFACE] -w [OUTPUT-PREFIX] --write-interval 30 -o csv
    

    这将为您提供一个 csv 文件,其名称将以 [OUTPUT-PREFIX] 为前缀。该文件将每 30 秒更新一次。如果你给 /var/log/test 这样的前缀,那么文件将进入 /var/log/ 并且看起来像 test-XX.csv

    然后,您应该能够在 airodump 运行时通过任何其他工具访问输出文件。

    【讨论】:

      【解决方案3】:

      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
      

      第一种方法在使用其他程序/应用程序解析输出时更好。

      【讨论】:

        猜你喜欢
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 2012-11-11
        • 2012-04-24
        相关资源
        最近更新 更多