Identificando sinal de rede sem fio em modo texto
Publicado por Wesley Henrique Leite (última atualização em 13/02/2012)
[ Hits: 6.309 ]
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
Enviando faixas tocadas no Amarok 2 para o Twitter
Samba - Forçar usuário a alterar senha no próximo logon
Adicionar usuários para serem autenticados pelo squid
Reconhecer drive conectado ou desconectado (básico)
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (1)
Preciso recuperar videos *.mp4 corrompidos (1)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (6)









