Identificando sinal de rede sem fio em modo texto
Publicado por Wesley Henrique Leite (última atualização em 13/02/2012)
[ Hits: 6.323 ]
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
Pegando as informações do usuario
rc.squid start|stop|restart Servidor Proxy
Script de controle do serviço TFTP
Baixa e instala o Real Media para Linux
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Scripts ou binários [RESOLVIDO] (3)
VOL já não é mais como antes? (10)
Pergunta: Meu teclado não está respondendo direito como e consertar? ... (4)









