首页 > 解决方案 > Bash airbase-ng AP 警报

问题描述

我想制作一个 bash 脚本,当具有特定 MAC 地址的设备连接到我的“MyNetwork”AP 时输出一条消息。

airbase-ng -a 00:00:00:00:00:00 --essid "MyNetwork" -c 6 wlan0mon | grep 'BB:BB:BB:BB:BB:BB'

此命令正确输出包含特定 MAC 地址的 airbase-ng 行:BB:BB:BB:BB:BB:BB

将此命令添加到 bash 脚本时,即使我使用正确的 MAC 地址连接,也不会输出“Hello iPhone”消息

解决方案

#!/bin/bash

while true; do

  if airbase-ng -a 00:00:00:00:00:00 --essid "MyNetwork" -c 6 wlan0mon -q | grep 'BB:BB:BB:BB:BB:BB'; 
  then
     echo "Hello iPhone!"
  fi

  #insert exit condition here
  if false; then
    break
  fi

  #5 second sleep
  sleep 5

done

我究竟做错了什么?

标签: bash

解决方案


您可能也不想不停地运行它。所以加个睡眠。把它们放在一起。

#!/bin/bash

while true; do

  if [[ $(airbase-ng -a 00:00:00:00:00:00 --essid "MyNetwork" -c 6 wlan0mon | grep 'BB:BB:BB:BB:BB:BB') ]]; 
  then
    echo "Hello iPhone!"
  fi

  #insert exit condition here
  if false; then
    break
  fi

  #5 second sleep
  sleep 5

done

您可能还应该添加某种退出条件。不管那是什么,就break在那。


推荐阅读