Представляем Location Changer
Вот очень многообещающий скрипт для изменения сетевых расположений на основе WiFi SSID:
Он создан Антоном Епревым. Вы можете просмотреть код и более подробную документацию на GitHub:
Монтаж
Устанавливается через командную строку:
$ curl -L https://github.com/eprev/locationchanger/raw/master/locationchanger.sh | bash
Он попросит вас ввести пароль root для установки locationchanger
в каталог /usr/local/bin
.
Это оно!
После этого, если существует сетевое местоположение , имя которого идентично имени (SSID) текущей сети Wi-Fi, оно автоматически переключится на сетевое местоположение. В противном случае он переключится на Автоматическое определение местоположения. (Кстати, если нет места с названием « Автоматически», оно жалуется в журналах и выходит.)
Скрипт для конкретного местоположения
Если вы хотите запускать сценарий каждый раз, когда вы подключаетесь к определенной сети WiFi, поместите эти сценарии в ~/.locations
и назовите их в честь сетей WiFi, например, ~/.locations/Corp Wi-Fi
:
#!/usr/bin/env bash
# Require password immediately after sleep or screen saver begins
osascript -e 'tell application "System Events" to set require password to wake of security preferences to true'
И вы можете создать ~/.locations/Automatic
, который сбросит эти изменения в других местах:
#!/usr/bin/env bash
# Don’t require password immediately after sleep or screen saver begins
osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
Удостоверьтесь, что вы используете биты выполнения для скриптов (chmod +x
).
Псевдонимы
Вы можете разделить сетевое местоположение между несколькими сетями WiFi. Например, если у вас есть беспроводной маршрутизатор, который вещает одновременно на частотах 2,4 и 5 ГГц , вы можете создать файл конфигурации ~/.locations/locations.conf
и поместить простые пары ключ-значение внутри:
Home_WiFi_5GHz=Home_WiFi
Здесь ключи - это имена сетей WiFi, а значения - соответствующие местоположения сети. Присоединяйтесь к ним с голыми знаками равенства (=
, без пробелов). В приведенном выше примере, если подключена сеть WiFi Home_WiFi_5GHz , она переключится на сетевое местоположение Home_WiFi.
Обратите внимание, что псевдонимы местоположения имеют приоритет над правилом с тем же именем. В приведенном выше примере, только скрипт ~/.locations/Home_WiFi
будет работать при подключении к сети WiFi Home_WiFi_5GHz.
С псевдонимами местоположений вам даже не нужно создавать дополнительные сетевые местоположения для сопоставления имен сетей WiFi.
Поиск проблемы
Вы можете просмотреть расширенные журналы с помощью следующей команды:
$ tail -f ~/Library/Logs/LocationChanger.log
Образец вывода:
[2017-10-13 11:35] Connected to 'Unknown WiFi'
[2017-10-13 11:35] Location 'Unknown WiFi' was not found. Will default to 'Automatic'
[2017-10-13 11:35] Changing the location to 'Automatic'
CurrentSet updated to 6B593A12-C51B-3FF1-DE1D-87310F232147 (Automatic)
[2017-10-13 11:37] Connected to 'Home_WiFi_5GHz'
[2017-10-13 11:37] Will switch the location to 'Home_WiFi' (configuration file)
[2017-10-13 11:37] Changing the location to 'Home_WiFi'
CurrentSet updated to 7900D1E6-3820-50C6-882E-4F5K2BEF32ED (Home_WiFi)
Пробные
Сначала выгрузите агент запуска:
launchctl unload ~/Library/LaunchAgents/LocationChanger.plist
Затем удалите двоичный файл, plist и файл журнала:
rm ~/Library/LaunchAgents/LocationChanger.plist
rm ~/Library/Logs/LocationChanger.log
sudo rm /usr/local/bin/locationchanger
Вы также можете удалить файлы конфигурации и специфичные для местоположения скрипты из ~/.locations
:
rm -rf ~/.locations