Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Wesley Henrique Leite em (última atualização em 13/02/2012)   [ 2025 hits ]

Login: wesleyh, 4517 pontos

   


Descrição

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>

[ Download: wifiSinal.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/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

Scripts recomendados
   Script Linux recomendado Ler arquivo linha por linha
   Script Linux recomendado Mover logs antigos do SAMBA
   Script Linux recomendado Script muito interessante
   Script Linux recomendado Script que mostra informações sobre o sistema
   Script Linux recomendado Script para backup de usuários

Comentários
[1] Comentário enviado por wesleyh em 13/02/2012 - 23:35h:

Fico grato pelos emails, notei que houve uma dificuldade para entender -[c|p] isso quer dizer -c ou -p fiz em modo de expressão regular. blz .. vlw pessoal.

Modo de Usar:

./wifiSinal.sh -c wlan0
ou
./wifiSinal.sh -p wlan0




Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.