¿Hay alguna forma de cambiar automáticamente las redes inalámbricas dependiendo de la intensidad de la señal?

4

Tengo un enrutador de doble banda de Linksys. Cerca de la parte posterior de nuestra casa (que es donde se ubican principalmente nuestras computadoras), solo la red G llega a la red, por lo que cuando trabajo en la parte frontal de la 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 automáticamente de red dependiendo de la intensidad de la señal. ¿Hay alguna forma de hacer esto? Nuestras Mac están ejecutando 10.8. Gracias

    
pregunta crios 25.08.2012 - 16:40

1 respuesta

3

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

Puedes usar las herramientas de la 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.

A modo de 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 los Agentes de inicio. LaunchAgents puede iniciar aplicaciones, ejecutar scripts en momentos específicos, con regularidad 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
    
respondido por el markhunte 25.08.2012 - 23:38

Lea otras preguntas en las etiquetas