Identificando sinal de rede sem fio em modo texto
Publicado por Wesley Henrique Leite (última atualização em 13/02/2012)
[ Hits: 6.222 ]
Este script baseia-se no resultado gerado pelo comando "iwlist" imprimindo uma barra colorida de indicador de sinal, nada demais apenas por diversão, foi testado apenas no OpenSuse, mas não acredito ter problemas com outras distros.
Exemplo de Saída:
"DYNAMIC" __________ [ ▒▒▒▒▒▒▒▒ ] WEP
^CYMBOL" ___________ [ ▒▒▒▒▒▒▒▒ ] ???????
Implementei dois modos:
-p (Persistente)
Neste modo a tela do terminal será limpa, em seguida será carregada em tempo real a lista de redes sem fio próximas a você, não é estático, ficará atualizando o tempo todo o sinal, a ordem das redes pode mudar.
-c (Console)
Idêntico ao modo acima, mas não fica atualizando.
Modo de usar:
./wifiSinal.sh -[c|p] <wlanX>
#!/bin/sh # # autor: Wesley Henrique Leite # : wesleyhenrique [-] gmail ['] com function ChecarError { # ESSA FUNCAO EH INVOCADA SEMPRE QUE QUERO VERIFICAR SE # ALGUM ERRO OCORREU NA EXECUCAO DO SCRIPT # SE #? NAO FOR 0 ENTAO TEM ALGUM ERRO if [ $? -ne 0 ] then echo "Ocorreu um erro" exit fi } function ScanRetEssid { # PEGA SID DAS REDES # CHECA SE DEU ALGUM ERRO $IW $LAN scan | egrep "ESSID" | cut -d: -f2 ChecarError } function RetSinal { # RECEBE COMO PARAMETRO O NOME DA REDE # VERIFICA O SINAL DESTA REDE E RETORNA UM NUMERO # DE 0 A 7 # EM SEGUIDA CHECA SE DEU ALGUM ERRO ESSID=$1 SINAL=$($IW $LAN scan | grep -B2 $ESSID | cut -d"=" -f2 | cut -d"/" -f1 | cut -d" " -f1 | sed 's/a-zA-Z//g' ) echo ${SINAL:0:1} ChecarError } function IEEE { # RECEBE COMO PARAMETRO O NOME DA REDE E TENTA # LOCALIZAR O PROTOCOLO UTILIZADO ESSID=$1 W80211=$($IW $LAN scan | grep -A20 $ESSID | egrep -wo "(WPA|WPA2|WEP)" | cut -d: -f2-3 ) if [ -z "$W80211" ] then echo "???????" else echo ${W80211:0:4} fi } function ImprimirBarra { # E FINALMENTE IMPRIME UMA BARRA INFORMANDO # O SINAL DA REDE SINAL=$1 if [ -z $SINAL ] then SINAL=1 fi for i in $(seq 1 7) do if [ $i -le $SINAL ] then echo -ne "{FONTE}33[;32;1m{FONTE}30{FONTE}33[m" fi if [ $i -ge $SINAL ] then echo -ne "{FONTE}33[;37;1m{FONTE}30{FONTE}33[m" fi done ChecarError } function run { # EH A FUNCAO QUE UTILIZO PARA RODAR O SCRIPT NOME=$(ScanRetEssid $LAN) for SID in $NOME do NomeDaRede="$SID __________________" SIG="$(RetSinal $SID)" echo -e "${NomeDaRede:0:20} [ $(ImprimirBarra $SIG) ] $(IEEE $NomeDaRede) " done ChecarError } ## # MAIN ## # CHECA SE SEU ID PRINCIPAL EH DE ROOT # NAO QUE NECESSARIAMENTE DEVA SER # EXISTEM MANEIRAS DE UTILIZA O IWLIST # COM USUARIO.. if [ $EUID -ne 0 ] then echo "Necessita ser root" exit fi # LOCALIZA O EXECUTAVEL DO PROGRAMA PASSADO COMO PARAMETRO IW=$(which iwlist) LAN=$2 if [ -z "$IW" ] then # SE A VARIAVEL QUE CONTEM O IWLIST ESTIVER VAZIA # O IWLIST NAO FOI ENCONTRADO EM SEU SISTEMA echo "iwlist nao encontrado" exit fi # BASICAMENTE O SCRIPT NECESSITA DE DOIS PARAMETROS # SE INFORMAR MENOS OU MAIS QUE DOIS PARAMETRO ELE NAO RODARAH if [ $# -ne 2 ] then printf "Modo de usar\n$0 -[p|c] wlanX\n" exit fi # CASE PARA CHECAR OS PRIMEIROS PARAMETRO case $1 in "-p") clear while [ 1 ] do tput cup 0 0 run done ;; "-c") run ;; esac
Imprimindo textos com o comando "echo"
Backup PostgreSql por DataBases
Relógio em posições aleatórias
Comandos e estruturas básicas de shell script
Script para backup de usuários
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Git config não aplica configurações
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Já estou acreditando que não há limites... (3)
Teclado n~ao escreve abnt2 (8)
Linux mint só reproduz vídeos em navegadores se estiverem mutados [RES... (2)