Identificando sinal de rede sem fio em modo texto
Publicado por Wesley Henrique Leite (última atualização em 13/02/2012)
[ Hits: 6.183 ]
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
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
O que você está ouvindo agora? [2] (176)
Erro ao executar o comando para dar um get email (1)
Problema ao iniciar o Opensuse Tumbleweed (2)