¿Hay alguna manera de cambiar automáticamente las redes inalámbricas según la intensidad de la señal?

4

Tengo un enrutador de doble banda Linksys. Cerca de la parte trasera de nuestra casa (que es donde se ubican principalmente nuestras computadoras), solo la red G entra realmente, así que cuando estoy trabajando en la parte delantera de mi casa, me gusta conectarme a la red N para obtener una velocidad adicional. Lamentablemente, no podemos mover nuestro enrutador. Si es posible, me gustaría que mi Mac cambie de red automáticamente según la intensidad de la señal. ¿Hay alguna forma de hacer esto? Nuestros Mac están ejecutando 10.8. Gracias

crios
fuente
En apple.stackexchange.com/a/163118/8546 ( 22/12/2014 ): "... un script para verificar el valor RSSI del SSID conectado actualmente ... cambiar a ... SSID con RSSI más bajo ... desencadenado por el cambio de red ..." .
Graham Perrin

Respuestas:

3

No digo que esto sea ideal o que funcione bien. Pero solo para darte una idea.

Puede usar herramientas de línea de comandos para escribir un script que verifique la fuerza. y luego cambia la red según sea necesario.

Para obtener la fuerza, puede usar este código de línea de comando:

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

Mire las páginas del manual para / usr / sbin / networksetup para cambiar la configuración.

Como ejemplo, aquí hay un rápido applecript. Solo se ejecuta una vez, ya que es solo un ejemplo de uso. Pero en su script lo haría como un LaunchAgent. Hay una aplicación llamada lingon que simplifica la escritura de LaunchAgents. LaunchAgents puede iniciar aplicaciones, ejecutar scripts en momentos específicos, regularmente o cuando sucede algo.

espero que esto ayude

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
Markhunte
fuente