Przedstawiamy zmieniacz lokalizacji
Oto bardzo obiecujący skrypt do zmiany lokalizacji sieci w oparciu o SSID Wi-Fi:
Tworzy go Anton Eprev . Możesz wyświetlić kod i bardziej szczegółową dokumentację na GitHub:
Instalacja
Instaluje się za pomocą wiersza polecenia:
$ curl -L https://github.com/eprev/locationchanger/raw/master/locationchanger.sh | bash
Poprosi Cię o hasło roota, aby zainstalować locationchanger
w /usr/local/bin
katalogu.
Otóż to!
Następnie, jeśli istnieje lokalizacja sieciowa, której nazwa jest identyczna z nazwą (SSID) bieżącej sieci Wi-Fi , automatycznie przełączy się na lokalizację sieciową. W przeciwnym razie przełączy się na Automatyczną lokalizację. (BTW, jeśli nie ma lokalizacji o nazwie Automatyczna , narzeka na dzienniki i wychodzi).
Skrypt specyficzny dla lokalizacji
Jeśli chcesz uruchomić skrypt za każdym razem, gdy łączysz się z określoną siecią Wi-Fi, włóż te skrypty ~/.locations
i nazwij je po sieciach Wi-Fi, np . ~/.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'
I możesz chcieć utworzyć ~/.locations/Automatic
, który zresetuje te zmiany w innych lokalizacjach:
#!/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'
Pamiętaj, aby rzutować bity wykonania na skrypty ( chmod +x
).
Aliasy lokalizacji
Możesz udostępnić lokalizację sieciową wielu sieciom WiFi. Na przykład, jeśli masz router bezprzewodowy, który nadaje jednocześnie w paśmie 2,4 i 5 GHz, możesz utworzyć plik konfiguracyjny ~/.locations/locations.conf
i umieścić w nim proste pary klucz-wartość:
Home_WiFi_5GHz=Home_WiFi
Tutaj klucze są nazwami sieci Wi-Fi , a wartości są odpowiednimi lokalizacjami sieci . Połącz je z czystymi znakami równości ( =
bez spacji). W powyższym przykładzie, jeśli podłączona jest sieć WiFi Home_WiFi_5GHz , przełączy się na lokalizację sieci Home_WiFi .
Zauważ, że aliasy lokalizacji mają pierwszeństwo przed regułą o tej samej nazwie. W powyższym przykładzie tylko skrypt ~/.locations/Home_WiFi
zostanie uruchomiony po połączeniu z siecią Wi-Fi Home_WiFi_5GHz .
Dzięki aliasom lokalizacji nie trzeba nawet tworzyć dodatkowych lokalizacji sieciowych dla pasujących nazw sieci Wi-Fi.
Rozwiązywanie problemów
Możesz przeglądać obszerne dzienniki za pomocą następującego polecenia:
$ tail -f ~/Library/Logs/LocationChanger.log
Przykładowe dane wyjściowe:
[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)
Odinstalowanie
Najpierw zwolnij agenta uruchamiania:
launchctl unload ~/Library/LaunchAgents/LocationChanger.plist
Następnie usuń plik binarny, plist i plik dziennika:
rm ~/Library/LaunchAgents/LocationChanger.plist
rm ~/Library/Logs/LocationChanger.log
sudo rm /usr/local/bin/locationchanger
Możesz również usunąć pliki konfiguracyjne i skrypty specyficzne dla lokalizacji ~/.locations
:
rm -rf ~/.locations