Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2021
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.09 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [[ "$1" && -f "$1" ]]; then
  4.     FILE="$1"
  5. else
  6.     echo 'Укажите .csv файл, который вы хотите проанализировать.';
  7.     echo 'Пример запуска:';
  8.     #echo -e "\tbash wfw.sh /tmp/test-01.csv";
  9.     echo -e "\tbash "$(basename "$0")" /tmp/test-01.csv";
  10.     exit  
  11. fi
  12.  
  13. echo -e "\033[1mВсего точек доступа: \033[0;31m`grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){14}' $FILE | wc -l`\e[0m"
  14. echo -e "\033[1mВсего клиентов: \033[0;31m`grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){5} ([A-Z0-9:]{17})|(not associated)' $FILE | wc -l`\e[0m"
  15. echo -e "\033[1mИз них клиентов без ассоциации: \033[0;31m`grep -E '(not associated)' $FILE | wc -l`\e[0m"
  16.  
  17. echo -e "\033[0;36m\033[1mИнформация о сетях:\e[0m"
  18.  
  19. while read -r line ; do
  20.  
  21.     if [ "`echo "$line" | cut -d ',' -f 14`" != " " ]; then
  22.         echo -e "\033[1m" `echo -e "$line" | cut -d ',' -f 14` "\e[0m"
  23.     else
  24.         echo -e " \e[3mне удалось получить имя сети\e[0m"
  25.     fi
  26.  
  27.     fullMAC=`echo "$line" | cut -d ',' -f 1`
  28.     echo -e "\tMAC-адрес: $fullMAC"
  29.  
  30.     MAC=`echo "$fullMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6`
  31.  
  32.     DIR="$( cd "$( dirname "$0" )" && pwd )"
  33.    result="$(grep -i -A 1 ^$MAC $DIR/oui.txt)";
  34.    if [ "$result" ]; then
  35.        echo -e "\tПроизводитель: `echo "$result" | cut -f 3`"
  36.    else
  37.        echo -e "\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m"
  38.    fi
  39.  
  40.    is5ghz=`echo "$line" | cut -d ',' -f 4 | grep -i -E '36|40|44|48|52|56|60|64|100|104|108|112|116|120|124|128|132|136|140'`
  41.  
  42.    if [ "$is5ghz" ]; then
  43.        echo -e "\t\033[0;31mРаботает на 5 ГГц!\e[0m"
  44.    fi
  45.  
  46.    printonce="\tИнформация о подключённых клиентах:"
  47.  
  48.    while read -r line2 ; do
  49.  
  50.        clientsMAC=`echo $line2 | grep -E "$fullMAC"`
  51.        if [ "$clientsMAC" ]; then
  52.  
  53.            if [ "$printonce" ]; then
  54.                echo -e $printonce
  55.                printonce=''
  56.            fi
  57.  
  58.            echo -e "\t\t\033[0;32m" `echo $clientsMAC | cut -d ',' -f 1` "\e[0m"
  59.            MAC2=`echo "$clientsMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6`
  60.  
  61.            result2="$(grep -i -A 1 ^$MAC2 $DIR/oui.txt)";
  62.  
  63.            if [ "$result2" ]; then
  64.                echo -e "\t\t\tПроизводитель: `echo "$result2" | cut -f 3`"
  65.                ismobile=`echo $result2 | grep -i -E 'Olivetti|Sony|Mobile|Apple|Samsung|HUAWEI|Motorola|TCT|LG|Ragentek|Lenovo|Shenzhen|Intel|Xiaomi|zte'`
  66.                warning=`echo $result2 | grep -i -E 'ALFA|Intel'`
  67.                if [ "$ismobile" ]; then
  68.                    echo -e "\t\t\t\033[0;33mВероятно, это мобильное устройство\e[0m"
  69.                fi
  70.  
  71.                if [ "$warning" ]; then
  72.                    echo -e "\t\t\t\033[0;31;5;7mУстройство может поддерживать режим монитора\e[0m"
  73.                fi
  74.  
  75.            else
  76.                echo -e "\t\t\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m"
  77.            fi
  78.  
  79.            probed=`echo $line2 | cut -d ',' -f 7`
  80.  
  81.            if [ "`echo $probed | grep -E [A-Za-z0-9_\\-]+`" ]; then
  82.                echo -e "\t\t\tИскал сети: $probed"
  83.            fi        
  84.        fi
  85.    done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){5} ([A-Z0-9:]{17})|(not associated)' $FILE)
  86.    
  87. done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){14}' $FILE)
  88.  
  89. echo -e "\033[0;36m\033[1mИнформация о неподключённых клиентах:\e[0m"
  90.  
  91. while read -r line2 ; do
  92.  
  93.    clientsMAC=`echo $line2  | cut -d ',' -f 1`
  94.  
  95.    echo -e "\033[0;31m" `echo $clientsMAC | cut -d ',' -f 1` "\e[0m"
  96.    MAC2=`echo "$clientsMAC" | sed 's/ //g' | sed 's/-//g' | sed 's/://g' | cut -c1-6`
  97.  
  98.    result2="$(grep -i -A 1 ^$MAC2 $DIR/oui.txt)";
  99.  
  100.    if [ "$result2" ]; then
  101.        echo -e "\tПроизводитель: `echo "$result2" | cut -f 3`"
  102.        ismobile=`echo $result2 | grep -i -E 'Olivetti|Sony|Mobile|Apple|Samsung|HUAWEI|Motorola|TCT|LG|Ragentek|Lenovo|Shenzhen|Intel|Xiaomi|zte'`
  103.        warning=`echo $result2 | grep -i -E 'ALFA|Intel'`
  104.        if [ "$ismobile" ]; then
  105.            echo -e "\t\033[0;33mВероятно, это мобильное устройство\e[0m"
  106.        fi
  107.        if [ "$warning" ]; then
  108.            echo -e "\t\033[0;31;5;7mУстройство может поддерживать режим монитора\e[0m"
  109.        fi
  110.    else
  111.        echo -e "\tПроизводитель: \e[3mИнформация не найдена в базе данных.\e[0m"
  112.    fi
  113.  
  114.    probed=`echo $line2 | cut -d ',' -f 7`
  115.  
  116.    if [ "`echo $probed | grep -E [A-Za-z0-9_\\-]+`" ]; then
  117.        echo -e "\tИскал сети: $probed"
  118.    fi        
  119.  
  120. done < <(grep -E '(not associated)' $FILE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement