Mac OS X peut-il être configuré pour configurer automatiquement son interface Airport avec une adresse IP statique lorsqu'il est connecté à un réseau Wifi avec un certain nom, et sur tous les autres réseaux Wifi utiliser DHCP?
Actuellement, j'utilise la fonction "Emplacements" de la section "Réseau" dans les Préférences Système pour basculer manuellement entre deux configurations d'adresse IP. J'ai une configuration «mon IP statique» et une configuration par défaut «DHCP». Cependant, cela nécessite d'entrer dans les Préférences Système pour modifier la liste déroulante Emplacement à chaque fois que vous changez d'emplacement. Cela peut-il être automatisé?
De préférence, cela se ferait sans logiciel tiers.
la source
Il est possible de se passer de tiers, voir https://github.com/rimar/wifi-location-changer
la source
Une solution tierce non gratuite qui fonctionnerait probablement pour vous est Locations .
Comme suggéré par cette réponse à une question similaire, mais pas identique, sur stackoverflow, vous pouvez créer un script qui s'exécute à intervalle régulier.
launchd
l'empêchera de fonctionner plus d'une fois.Psuedocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
où {location} est le nom de l'emplacement vers lequel vous souhaitez basculer en fonction du réseau wifi trouvé.Il peut y avoir une situation de poule et d'oeuf ici avec la connexion au wifi local qui ne fournit pas d'adresse DHCP pendant que vous êtes configuré pour attendre une adresse de DHCP.
-
Mise à jour: a trouvé une question en double possible qui suggère une solution open source: MarcoPolo
la source
Puisque la réponse donnée est manuelle, voici un script simple qui la modifie automatiquement:
Créez divers emplacements dans Préférences Système> Réseau pour refléter chacun de vos réseaux WiFi.
Script: (
/usr/bin/autolocation.sh
) Mettez ceci à un endroit que vous préférez et modifiez les valeurs SSID dans le script en fonction de votre scénario.Ce script changera l'emplacement du réseau (paramètres) en fonction du SSID du réseau sans fil. Maintenant, cela doit être exécuté chaque fois qu'il y a un changement dans les paramètres réseau. Nous allons créer un agent launchd pour faire de même.
launchd plist: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)J'ai créé ce fichier dans
~/Library/LaunchAgents
(à l'intérieur de mon répertoire personnel) car je suis le seul utilisateur à utiliser cette machine. Si vous voulez qu'elle soit globale, insérez-la/Library/LaunchAgents
.Ce fichier doit appartenir à
root
et disposer des600
autorisations:Une fois que vous vous déconnectez / vous connectez ou redémarrez le système, l'agent de lancement démarre et commence à fonctionner en fonction de l'endroit où vous avez placé le fichier (votre répertoire personnel ou global). Mais si vous ne voulez pas faire cela et que vous voulez qu'il se charge maintenant, exécutez ce qui suit sur la ligne de commande. Vous ne devez le faire qu'une seule fois.
C'est ça. Maintenant, l'IP de votre Mac changera automatiquement.
Remarque: Fonctionne également sur El Capitan!
la source
Présentation de Changer l'emplacement
Voici un script très prometteur pour changer l'emplacement du réseau en fonction du SSID WiFi:
Il est créé par Anton Eprev . Vous pouvez afficher le code et une documentation plus détaillée sur GitHub:
Installation
Il s'installe via la ligne de commande:
Il vous demandera un mot de passe root à installer
locationchanger
dans le/usr/local/bin
répertoire.C'est ça!
Après cela, s'il existe un emplacement réseau dont le nom est identique au nom (SSID) du réseau WiFi actuel , il passera automatiquement à l'emplacement réseau. Sinon, il passera à l' emplacement automatique . (BTW, s'il n'y a aucun emplacement appelé Automatic , il se plaint dans les journaux et se ferme.)
Script spécifique à l'emplacement
Si vous souhaitez exécuter un script chaque fois que vous vous connectez à un réseau WiFi spécifique, placez ces scripts
~/.locations
et nommez-les d'après les réseaux WiFi, par exemple~/.locations/Corp Wi-Fi
:Et vous voudrez peut-être créer
~/.locations/Automatic
qui réinitialisera ces modifications dans d'autres emplacements:Assurez-vous de lancer des bits d'exécution sur des scripts (
chmod +x
).Alias d'emplacement
Vous pouvez partager un emplacement réseau entre plusieurs réseaux WiFi. Par exemple, si vous avez un routeur sans fil qui diffuse sur des bandes 2,4 et 5 GHz en même temps, vous pouvez créer un fichier de configuration
~/.locations/locations.conf
et mettre des paires clé-valeur simples à l'intérieur:Ici, les clés sont des noms de réseau WiFi et les valeurs sont des emplacements de réseau correspondants . Rejoignez-les avec des signes nus égaux (
=
, sans espaces). Dans l'exemple ci-dessus, si le réseau WiFi Home_WiFi_5GHz est connecté, il basculera vers l'emplacement réseau Home_WiFi .Notez que les alias d'emplacement ont priorité sur la règle du même nom. Dans l'exemple ci-dessus, seul le script
~/.locations/Home_WiFi
s'exécutera lorsque vous vous connecterez au réseau WiFi Home_WiFi_5GHz .Avec les alias de localisation, vous n'avez même pas besoin de créer des emplacements de réseau supplémentaires pour faire correspondre les noms des réseaux WiFi.
Dépannage
Vous pouvez afficher des journaux détaillés avec la commande suivante:
Exemple de sortie:
Désinstallation
Tout d'abord, déchargez l'agent de lancement:
Ensuite, supprimez le fichier binaire, plist et journal:
Vous pouvez également supprimer les fichiers de configuration et les scripts spécifiques à l'emplacement à l'intérieur
~/.locations
:la source