Esiste un modo per passare automaticamente alle reti wireless in base alla potenza del segnale?

4

Ho un router a doppia banda Linksys. Vicino alla parte posteriore della nostra casa (che è il luogo in cui si trovano principalmente i nostri computer), solo la rete G arriva davvero, quindi quando lavoro davanti a casa nostra, mi piace connettermi alla rete N per ottenere una maggiore velocità. Purtroppo non siamo in grado di spostare il nostro router. Se è possibile, vorrei che il mio Mac commutasse automaticamente le reti a seconda della potenza del segnale. C'è un modo per fare questo? I nostri Mac sono in esecuzione 10.8. Grazie

    
posta crios 25.08.2012 - 16:40
fonte

1 risposta

3

Non dire che questo è l'ideale o funziona bene. Ma solo per darti un'idea.

Puoi usare gli strumenti della riga di comando per scrivere uno script che controlli la forza. e quindi cambia la rete secondo necessità.

Per ottenere la forza puoi usare questo codice a riga di comando:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i "agrCtlRSSI:"

Guarda le pagine man per / usr / sbin / networksetup per cambiare la configurazione.

Ad esempio, qui c'è un rapido applecript. Funziona solo una volta poiché è solo un esempio di utilizzo. Ma nel tuo script lo farei come un LaunchAgent Esiste un'app chiamata lingon che semplifica la scrittura di LaunchAgent. LaunchAgents può avviare app, eseguire script in orari specifici, regolarmente o quando succede qualcosa.

Spero che questo aiuti

set wifi1 to "wifissid1"
set wifi2 to "wifissid2"

try
    set strength to last word of (do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i \"agrCtlRSSI:\"") as number
    log strength
end try
set network to do shell script "/usr/sbin/networksetup -getairportnetwork en1"
log network



if strength is less than 50 then



    if network is not equal to "Current Wi-Fi Network: " & wifi1 then

        do shell script "/usr/sbin/networksetup -setairportnetwork en1 " & wifi1 & " &> /dev/null & "

    end if



else

    if network is not equal to "Current Wi-Fi Network: " & wifi2 then

        do shell script "/usr/sbin/networksetup -setairportnetwork en1 " & wifi2 & " &> /dev/null & "

    end if

end if
    
risposta data 25.08.2012 - 23:38
fonte

Leggi altre domande sui tag