O Mac OS X pode ser configurado para configurar automaticamente sua interface do aeroporto com um endereço IP estático quando conectado a uma rede Wifi com um determinado nome e em todas as outras redes Wifi usar DHCP?
Atualmente, estou usando o recurso "Locais" da seção "Rede" nas Preferências do sistema para alternar manualmente entre duas configurações de endereço IP. Eu tenho uma configuração "meu IP estático" e uma configuração "DHCP" padrão. No entanto, isso requer a inserção de Preferências do sistema para alterar o menu suspenso sempre que se muda de local. Isso pode ser automatizado?
De preferência, isso seria feito sem software de terceiros.
fonte
É possível fazer sem terceiros, consulte https://github.com/rimar/wifi-location-changer
fonte
Uma solução não livre de terceiros que provavelmente funcionaria para você é o Localizações .
Conforme sugerido por esta resposta a uma pergunta semelhante, mas não idêntica, sobre o stackoverflow, você pode criar um script que é executado em um intervalo regular.
launchd
impedirá a execução mais de uma vez.Psuedocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
onde {location} é o nome do local para o qual você deseja alternar com base na rede wifi encontrada.Pode haver uma situação de galinha e ovo aqui com a conexão ao wifi local que não fornece um endereço DHCP enquanto você está configurado para esperar um endereço do DHCP.
-
Atualização: possível pergunta duplicada encontrada que sugere uma solução de código- fonte aberto: MarcoPolo
fonte
Como a resposta dada é manual, aqui está um script simples que a altera automaticamente:
Crie vários locais em Preferências do sistema> Rede para refletir cada uma das suas redes WiFi.
Script: (
/usr/bin/autolocation.sh
) Coloque isso em algum local de sua preferência e altere os valores SSID no script de acordo com o seu cenário.Este script altera a localização da rede (configurações) com base no SSID da rede sem fio. Agora, isso deve ser executado sempre que houver uma alteração nas configurações de rede. Criaremos um agente launchd para fazer o mesmo.
launchd plist: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)Criei esse arquivo
~/Library/LaunchAgents
(dentro do meu diretório pessoal), pois sou o único usuário que está usando esta máquina. Se você quiser que seja global, coloque-o/Library/LaunchAgents
.Este arquivo deve ser de propriedade
root
e ter600
permissões:Depois que você fizer logout / login ou reiniciar o sistema, o agente de inicialização começará a funcionar, dependendo de onde você colocou o arquivo (seu diretório pessoal ou global). Mas se você não deseja fazer isso e deseja que ele seja carregado agora, execute o seguinte na linha de comando. Você tem que fazer isso apenas uma vez.
É isso aí. Agora, o IP do seu Mac mudará automaticamente.
Nota: Também funciona em El Capitan!
fonte
Introdução ao Location Changer
Aqui está um script muito promissor para alterar os locais de rede com base no WiFi SSID:
É criado por Anton Eprev . Você pode visualizar o código e a documentação mais detalhada no GitHub:
Instalação
Ele é instalado via linha de comando:
Ele solicitará uma senha root para instalar
locationchanger
no/usr/local/bin
diretório.É isso aí!
Depois disso, se houver um local de rede cujo nome seja idêntico ao nome (SSID) da rede WiFi atual , ele alternará automaticamente para o local de rede. Caso contrário, ele alternará para o local automático . (BTW, se não houver um local chamado Automático , ele reclama nos registros e saídas.)
Script específico do local
Se você deseja executar um script sempre que se conectar a uma rede Wi-Fi específica, insira esses scripts
~/.locations
e nomeie-os de acordo com as redes Wi-Fi, por exemplo~/.locations/Corp Wi-Fi
:E você pode criar
~/.locations/Automatic
que redefinirá essas alterações em outros locais:Certifique-se de lançar bits de execução nos scripts (
chmod +x
).Aliases de localização
Você pode compartilhar um local de rede entre várias redes WiFi. Por exemplo, se você possui um roteador sem fio que transmite em bandas de 2,4 e 5 GHz ao mesmo tempo, pode criar um arquivo de configuração
~/.locations/locations.conf
e inserir pares simples de valores-chave:Aqui, as chaves são nomes de redes WiFi e os valores são os locais de rede correspondentes . Junte-se a eles com sinais de igualdade nus (
=
, sem espaços). No exemplo acima, se a rede WiFi Home_WiFi_5GHz estiver conectada, ela mudará para o local de rede Home_WiFi .Observe que os alias de local têm prioridade sobre a regra de mesmo nome. No exemplo acima, somente o script
~/.locations/Home_WiFi
será executado quando você se conectar à rede WiFi Home_WiFi_5GHz .Com os aliases de localização, você nem precisa criar locais de rede extras para nomes correspondentes de redes WiFi.
Solução de problemas
Você pode visualizar logs extensos com o seguinte comando:
Saída de amostra:
Desinstalação
Primeiro, descarregue o agente de inicialização:
Em seguida, remova o arquivo binário, plist e log:
Você também pode remover arquivos de configuração e scripts específicos do local
~/.locations
:fonte