Identificando sinal de rede sem fio em modo texto
Publicado por Wesley Henrique Leite (última atualização em 13/02/2012)
[ Hits: 6.214 ]
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
Script de controle do serviço TFTP
Obter temperatura do Weather.com
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (2)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)