Kann Mac OS X so eingerichtet werden, dass seine Flughafenschnittstelle automatisch mit einer statischen IP-Adresse konfiguriert wird, wenn eine Verbindung zu einem WLAN-Netzwerk mit einem bestimmten Namen besteht und in allen anderen WLAN-Netzwerken DHCP verwendet wird?
Derzeit verwende ich die Funktion "Standorte" im Abschnitt "Netzwerk" in den Systemeinstellungen, um manuell zwischen zwei IP-Adress-Setups zu wechseln. Ich habe ein Setup für "meine statische IP" und ein Standard-Setup für "DHCP". Dies erfordert jedoch die Eingabe der Systemeinstellungen, um die Dropdown-Liste Standort jedes Mal zu ändern, wenn Sie den Standort wechseln. Kann das automatisiert werden?
Dies würde vorzugsweise ohne Software von Drittanbietern erfolgen.
quelle
Auf Dritte kann verzichtet werden, siehe https://github.com/rimar/wifi-location-changer
quelle
Eine nicht kostenlose Lösung von Drittanbietern, die wahrscheinlich für Sie funktionieren würde, ist Locations .
Wie in dieser Antwort auf eine ähnliche, aber nicht identische Frage zum Stapelüberlauf vorgeschlagen, können Sie ein Skript erstellen, das in regelmäßigen Abständen ausgeführt wird.
launchd
verhindert, dass es mehr als einmal ausgeführt wird.Pseudocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
wobei {location} der Name des Standorts ist, zu dem Sie wechseln möchten, basierend auf dem gefundenen WLAN-Netzwerk.Hier kann es zu einer Henne-Ei-Situation kommen, wenn eine Verbindung zu lokalem WLAN hergestellt wird, das keine DHCP-Adresse bereitstellt, während Sie so konfiguriert sind, dass Sie eine Adresse von DHCP erwarten.
- -
Update: Möglicherweise doppelte Frage gefunden, die eine OpenSource-Lösung vorschlägt: MarcoPolo
quelle
Da die angegebene Antwort manuell ist, finden Sie hier ein einfaches Skript, das sie automatisch ändert:
Erstellen Sie unter Systemeinstellungen> Netzwerk verschiedene Speicherorte, um jedes Ihrer WiFi-Netzwerke wiederzugeben.
Skript: (
/usr/bin/autolocation.sh
) Platzieren Sie dies an einem von Ihnen bevorzugten Ort und ändern Sie die SSID-Werte im Skript entsprechend Ihrem Szenario.Dieses Skript ändert den Netzwerkspeicherort (Einstellungen) basierend auf der SSID des drahtlosen Netzwerks. Dies muss nun ausgeführt werden, wenn sich die Netzwerkeinstellungen ändern. Wir werden einen Startagenten erstellen, um dasselbe zu tun.
Startliste: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)Ich habe diese Datei in
~/Library/LaunchAgents
(in meinem Home-Verzeichnis) erstellt, da ich der einzige Benutzer bin, der diesen Computer verwendet. Wenn Sie möchten, dass es global ist, geben Sie es ein/Library/LaunchAgents
.Diese Datei muss Eigentum von sein
root
und über folgende600
Berechtigungen verfügen :Sobald Sie sich abmelden / anmelden oder das System neu starten, startet der Startagent, je nachdem, wo Sie die Datei abgelegt haben (Ihr Ausgangsverzeichnis oder global). Wenn Sie dies jedoch nicht möchten und es jetzt laden möchten, führen Sie Folgendes in der Befehlszeile aus. Sie müssen es nur einmal tun.
Das ist es. Jetzt ändert sich die IP Ihres Mac automatisch.
Hinweis: Funktioniert auch bei El Capitan!
quelle
Einführung in Location Changer
Hier ist ein vielversprechendes Skript zum Ändern von Netzwerkstandorten basierend auf der WiFi-SSID:
Es wird von Anton Eprev erstellt . Sie können den Code und eine detailliertere Dokumentation auf GitHub anzeigen:
Installation
Es wird über die Befehlszeile installiert:
Sie werden nach einem Root-Passwort gefragt
locationchanger
, das im/usr/local/bin
Verzeichnis installiert werden soll .Das ist es!
Wenn danach ein Netzwerkspeicherort vorhanden ist, dessen Name mit dem Namen (SSID) des aktuellen WiFi-Netzwerks identisch ist , wird automatisch zum Netzwerkspeicherort gewechselt. Andernfalls wird auf Automatische Position umgeschaltet . (Übrigens, wenn es keinen Ort namens Automatisch gibt , beschwert es sich in Protokollen und beendet.)
Standortspezifisches Skript
Wenn Sie jedes Mal, wenn Sie eine Verbindung zu einem bestimmten WiFi-Netzwerk herstellen, ein Skript ausführen möchten, fügen Sie diese Skripte ein
~/.locations
und benennen Sie sie nach WiFi-Netzwerken, z~/.locations/Corp Wi-Fi
.Und vielleicht möchten Sie eine erstellen
~/.locations/Automatic
, die diese Änderungen an anderen Speicherorten zurücksetzt:Stellen Sie sicher, dass Ausführungsbits in Skripten umgewandelt werden (
chmod +x
).Standort-Aliase
Sie können einen Netzwerkstandort für mehrere WiFi-Netzwerke freigeben. Wenn Sie beispielsweise einen WLAN-Router haben, der gleichzeitig im 2,4- und 5-GHz-Band sendet, können Sie eine Konfigurationsdatei erstellen
~/.locations/locations.conf
und einfache Schlüssel-Wert-Paare einfügen:Hier sind Schlüssel WiFi-Netzwerknamen und Werte sind entsprechende Netzwerkstandorte . Verbinden Sie sie mit bloßen Gleichheitszeichen (
=
ohne Leerzeichen). Wenn im obigen Beispiel das WiFi-Netzwerk Home_WiFi_5GHz verbunden ist, wechselt es zum Netzwerkspeicherort Home_WiFi .Beachten Sie, dass Standort-Aliase Vorrang vor der gleichnamigen Regel haben. Im obigen Beispiel wird nur ein Skript
~/.locations/Home_WiFi
ausgeführt, wenn Sie eine Verbindung zum WiFi-Netzwerk Home_WiFi_5GHz herstellen .Mit Standort-Aliasnamen müssen Sie nicht einmal zusätzliche Netzwerkstandorte für übereinstimmende Namen von WiFi-Netzwerken erstellen.
Fehlerbehebung
Mit dem folgenden Befehl können Sie umfangreiche Protokolle anzeigen:
Beispielausgabe:
Deinstallation
Entladen Sie zunächst den Startagenten:
Entfernen Sie dann die Binär-, Plist- und Protokolldatei:
Sie können auch Konfigurationsdateien und standortspezifische Skripts entfernen
~/.locations
:quelle