Atualizando automaticamente minha conexão WiFi por meio de um script?

2

Estou usando o Mac 10.9.5. Quando estou na Starbucks, meu computador se conecta automaticamente à rede Wi-Fi. No entanto, após uma hora, eles o iniciam e, embora você ainda esteja conectado à rede deles, abaixo do ícone "WiFi" nas preferências do sistema de rede, agora você tem um "IP auto-atribuído" e não consegue se conectar à Internet. A única maneira de reconectar é clicar no botão "Desativar o Wi-Fi" e, em seguida, clique no botão "Ativar o Wi-Fi" para reativar as coisas.

Minha pergunta é: como escrevo um script para fazer isso automaticamente por mim? O que eu gosto é de algum script executado em segundo plano, se estiver conectado a uma rede chamada "Google Starbucks" e, se o script notar que tenho um "IP auto-atribuído", ele desativará o Wi-Fi e o ativará novamente. novamente sem eu ter que fazer nada.

Dave
fonte
Não há muita diferença em alternar o estado ligado / desligado / ligado do Wi-Fi no menu Apple vs. fazê-lo programaticamente, pois você ainda precisa clicar em algo ou inserir um comando em um terminal. Dito isto, posso fornecer um script AppleScript ou BASH simples que pode alternar o estado ativado / desativado / ativado do Wi-Fi, se você desejar. Codificá-lo para verificar e aguardar etc. é factível, mas não tenho tempo para mexer com ele.
user3439894
Sim, sou muito grato se você tiver um script que possa ativar / desativar o estado do Wi-Fi. Obrigado,
Dave

Respostas:

2

No uso do AppleScript: do shell script "networksetup -setairportpower en0 off; sleep 2; networksetup -setairportpower en0 on"embora você precise mudar en0para o adaptador apropriado que você pode obter no Network Utility.

Se você desejar em um script BASH, não use a do shell scriptpeça e o restante poderá estar em uma linha ou remova a ;adição de uma nova linha no local. Você pode trocar o display dialog ...script do Buscar with com isso, se quiser.

user3439894
fonte
1

Aqui está a parte 1 do script.

Ele monitorará se você está conectado à Internet e o alertará quando não estiver.

repeat
    try
        do shell script "ping -c 5 google.com"
    on error
        display dialog "You are not connected to the internet"
    end try
end repeat

Agora você pode desligar / ligar o WiFi (honestamente, isso é fácil) ou, se necessário, você pode escrever a segunda parte do script.

Ruskes
fonte
Obrigado. Como eu não quero que o ciclismo aconteça quando estou em casa ou em outras redes, você sabe como posso trabalhar com o nome de rede "Google Starbucks" na equação, além do fato de que eu só deseja ativar o ciclismo quando eu tiver um IP auto-atribuído?
Dave
Este não faz ciclismo. Verifica apenas se você está conectado à Internet. Enquanto você estiver, não faz nada. Se você não estiver conectado, isso lhe dirá. Não é necessário alterar o google.com para outra coisa, mas você pode.
Ruskes
1

Que tal um aplicativo Applescript. Executando a cada 10 segundos. Isso verifica o IP e o SSID

    on idle
            set checkSSID to (do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep ' SSID:'|awk -F:\\  '{print  $2}' ")

            set checkIp to do shell script "ifconfig en0|grep 'inet '|cut -d ' ' -f 2"

            if checkSSID starts with "Google Starbucks" and checkIp starts with 169 then

                do shell script "networksetup -setairportpower en0 off; sleep 2; networksetup -setairportpower en0 on"
            end if
            return 10 -- seconds
end idle

Salve o Applescript como um aplicativo aberto .

O aplicativo será acionado a cada 10 segundos. Ou o que você definir return 10como

O afaik "IP auto-atribuído" normalmente começa com 169. Mas mude para o que você está recebendo.

markhunte
fonte