Re: [BASH] selezionare rete wireless da shell
Mattia ha scritto:
Credo che otterrai pochi aiuti se non posti il file /tmp/wifi :)
Forse hai ragione, ma visto che in fondo è un semplice output standard
di "iwlist wla0 scan", non ci avevo pensato. Cmq in fondo alla mail l'ho
inserito.
Da tale output ne deriva che con i comandi:
iwlist wlan0 scan > /tmp/wifi
cat /tmp/wifi |grep Cell | wc -l
ottengo il numero di reti disponibili (contando in realtà due volte una
stessa rete - es. Bruder - ciò che però per ora non mi preoccupa)
Con il comando seguente invece estraggo la lista delle reti:
awk '/ESSID/ { print $0}'
Che però, come ho scritto nella mail precedente, mi dà un risultato spurio:
ESSID:"Bruder"
ESSID:"Bruder"
ESSID:""
ESSID:"NUMERICABLE-4656"
ESSID:"Radiolitec"
E non qualcosa di più facilmente utilizzabile, del tipo:
Bruder
Bruder
NUMERICABLE-4656
Radiolitec
Ai nomi così formattati vorrei quindi assegnare diverse variabili
(l'ideale sarebbe di stamparle anche a schermo, es 1. Bruder , 2. Bruder
, 3. , 4. NUMERICABLE-4556 , 5. Radiolitec), cosicchè nel memento in cui
il terminale mi chiede a quale rete voglio connettermi, possa indicare
univocamente la rete desiderata indicando es. "1" "2" "3" "4" o "5":
echo -n "A quale rete vuoi provare a collegarti?"
read RETE
echo RETE = (inserire la variabile giusta)
E quindi connettersi con i parametri disponibili (qualcosa del tipo),
anche questi però "greppati o seddati" in maniera appropriata (che non
so però come fare):
iwconfig wlan0 mode `cat /tmp/wifi |grep Mode |grep [Mode:]` channel
`cat /tmp/wifi |grep Channel | grep [Channel:]` essid $RETE
Ovviamente, una volta ottenuto ciò si potrebbe fare in modo che lo
script tenti di connettersi solo alle reti aperte (greppando le reti
disponibili solo a quelle contenenti il parametro "Encryption key:off",
o in caso di rete cifrata, chiedere di inserire la chiave... Insomma,
poterla estendere all'infinito.
In effetti più ci penso, più il tutto si complica, ma di base con
qualche ciclo di espressione regolare, for, read e if, dovrebbe uscire
qualcosa.
Spero in un vostro magnanimo aiuto.
Grazie!
giopas
# iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:14:6C:47:5D:6B
ESSID:"Bruder"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=14/100 Signal level=-97 dBm Noise
level=-106 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=00000034f97c5b4b
Cell 02 - Address: 00:14:6C:1F:21:7E
ESSID:"Bruder"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=10/100 Signal level=-100 dBm Noise
level=-107 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=00000034f51c5181
Cell 03 - Address: 00:0C:84:02:A1:C9
ESSID:""
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=14/100 Signal level=-98 dBm Noise
level=-107 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=00000d87c4d2b1e5
Cell 04 - Address: 00:1E:8C:C0:6B:D3
ESSID:"NUMERICABLE-4656"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=7/100 Signal level=-102 dBm Noise
level=-107 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s
12 Mb/s; 48 Mb/s
Extra:tsf=000001945ff2418a
Cell 05 - Address: 00:0A:78:9D:6B:AF
ESSID:"Radiolitec"
Mode:Master
Channel:10
Frequency:2.457 GHz (Channel 10)
Quality=9/100 Signal level=-100 dBm Noise
level=-106 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=00000a4268f6549c
--
"The paradigm of competition is a race: by
rewarding the winner, we encourage everyone
to run faster. When capitalism really works
this way, it does a good job; but its defenders
are wrong in assuming it always works this way.
If the runners forget why the reward is offered
and become intent on winning, no matter how, they
may find other strategies--such as, attacking
other runners. If the runners get into a fist
fight, they will all finish late."
(GNU manifesto/R. Stallman)
Reply to: