Представляем Location Changer
Вот очень многообещающий скрипт для изменения сетевых расположений на основе WiFi SSID:
Он создан Антоном Епревым . Вы можете просмотреть код и более подробную документацию на GitHub:
Установка
Устанавливается через командную строку:
$ curl -L https://github.com/eprev/locationchanger/raw/master/locationchanger.sh | bash
Он попросит вас ввести пароль root для установки locationchanger
в /usr/local/bin
каталог.
Это оно!
После этого, если существует сетевое местоположение , имя которого идентично имени (SSID) текущей сети WiFi , оно автоматически переключится на сетевое местоположение. В противном случае он переключится на Автоматическое определение местоположения. (Кстати, если нет места с именем « Автоматически» , оно жалуется в журналах и выходит.)
Сценарий для конкретного местоположения
Если вы хотите запускать сценарий каждый раз, когда вы подключаетесь к определенной сети 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