Existe uma maneira de alternar automaticamente as redes sem fio, dependendo da intensidade do sinal?

4

Eu tenho um roteador de banda dupla Linksys. Perto da parte de trás da nossa casa (que é onde os nossos computadores estão localizados principalmente) apenas a rede G realmente passa por isso quando estou trabalhando na frente de nossa casa, eu gosto de me conectar à rede N para a velocidade extra. Infelizmente, não podemos mover nosso roteador. Se for possível, gostaria que meu Mac alternasse automaticamente as redes dependendo da intensidade do sinal. Existe uma maneira de fazer isso? Nossos Macs estão executando 10.8. obrigado

crios
fonte
No apple.stackexchange.com/a/163118/8546 (2014-12-22): "… um script para verificar o valor de RSSI do SSID atualmente conectado… mude para… SSID com RSSI mais baixo… acionado por alteração de rede…”.
Graham Perrin

Respostas:

3

Não estou dizendo que isso é ideal ou funciona bem. Mas só para te dar uma ideia.

Você pode usar ferramentas de linha de comando para escrever um script que verifique a força. e, em seguida, altera a rede conforme necessário.

Para obter a força, você pode usar este código de linha de comando:

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

Olhe para as man pages para / usr / sbin / networksetup para alterar a configuração.

Como exemplo, aqui está um applescript rápido. Só é executado uma vez, pois é apenas um exemplo de uso. Mas no seu roteiro eu faria como um LaunchAgent Existe um aplicativo chamado lingon isso simplifica a gravação de LaunchAgents. Os LaunchAgents podem inicializar aplicativos, executar scripts em horários específicos, regularmente ou quando algo acontece.

Eu espero que isso ajude

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
fonte