¿Se puede configurar Mac OS X para configurar automáticamente su interfaz de aeropuerto con una dirección IP estática cuando se conecta a una red Wifi con un nombre determinado, y en todas las demás redes Wifi utiliza DHCP?
Actualmente estoy usando la función "Ubicaciones" de la sección "Red" en Preferencias del Sistema para cambiar manualmente entre dos configuraciones de dirección IP. Tengo una configuración de "mi IP estática" y una configuración predeterminada de "DHCP". Sin embargo, esto requiere ingresar a las Preferencias del Sistema para cambiar el menú desplegable Ubicación cada vez que cambie de ubicación. ¿Se puede automatizar esto?
Preferiblemente, esto se haría sin software de terceros.
fuente
Es posible prescindir de un tercero, consulte https://github.com/rimar/wifi-location-changer
fuente
Una solución de terceros no gratuita que probablemente funcione para usted son las ubicaciones .
Como sugiere esta respuesta a una pregunta similar, pero no idéntica, sobre stackoverflow, puede crear un script que se ejecute a intervalos regulares.
launchd
evitará que se ejecute más de una vez.Psuedocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
donde {ubicación} es el nombre de la ubicación a la que desea cambiar según la red wifi encontrada.Puede haber una situación de huevo y gallina aquí con la conexión a wifi local que no proporciona una dirección DHCP mientras está configurado para esperar una dirección de DHCP.
-
Actualización: se encontró una posible pregunta duplicada que sugiere una solución de código abierto: MarcoPolo
fuente
Dado que la respuesta dada es manual, aquí hay un script simple que lo cambia automáticamente:
Cree varias ubicaciones en Preferencias del sistema> Red para reflejar cada una de sus redes WiFi.
Script: (
/usr/bin/autolocation.sh
) Coloque esto en la ubicación que prefiera y cambie los valores SSID en el script de acuerdo con su escenario.Este script cambiará la ubicación (configuración) de la red según el SSID de la red inalámbrica. Ahora, esto debe ejecutarse siempre que haya un cambio en la configuración de la red. Crearemos un agente de launchd para hacer lo mismo.
launchd plist: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)Creé este archivo en
~/Library/LaunchAgents
(dentro de mi directorio de inicio) ya que soy el único usuario que usa esta máquina. Si quieres que sea global, ponlo/Library/LaunchAgents
.Este archivo debe ser propiedad
root
y tener600
permisos:Una vez que cierre sesión / inicie sesión o reinicie el sistema, el agente de inicio comenzará a funcionar dependiendo de dónde haya colocado el archivo (su directorio de inicio o global). Pero si no desea hacer eso y quiere que se cargue ahora, ejecute lo siguiente en la línea de comando. Tienes que hacerlo solo una vez.
Eso es. Ahora la IP de tu Mac cambiará automáticamente.
Nota: ¡Funciona también en El Capitán!
fuente
Presentación del cambiador de ubicación
Aquí hay un script muy prometedor para cambiar las ubicaciones de red basadas en WiFi SSID:
Es creado por Anton Eprev . Puede ver el código y la documentación más detallada en GitHub:
Instalación
Se instala a través de la línea de comando:
Le pedirá una contraseña de root para instalar
locationchanger
en el/usr/local/bin
directorio.¡Eso es!
Después de eso, si hay una ubicación de red cuyo nombre es idéntico al nombre (SSID) de la red WiFi actual , cambiará automáticamente a la ubicación de red. De lo contrario, cambiará a la ubicación automática . (Por cierto, si no hay una ubicación llamada Automática , se queja en registros y salidas).
Script específico de ubicación
Si desea ejecutar una secuencia de comandos cada vez que se conecta a una red WiFi específica, ingrese esas secuencias de comandos
~/.locations
y asígneles un nombre después de las redes WiFi, por ejemplo~/.locations/Corp Wi-Fi
:Y es posible que desee crear
~/.locations/Automatic
que restablecerá esos cambios en otras ubicaciones:Asegúrese de emitir bits de ejecución en scripts (
chmod +x
).Alias de ubicación
Puede compartir una ubicación de red entre múltiples redes WiFi. Por ejemplo, si tiene un enrutador inalámbrico que transmite en bandas de 2.4 y 5GHz al mismo tiempo, puede crear un archivo de configuración
~/.locations/locations.conf
y poner pares simples de clave-valor dentro:Aquí las claves son nombres de redes WiFi y los valores son ubicaciones de red correspondientes . Únase a ellos con signos iguales iguales (
=
sin espacios). En el ejemplo anterior, si la red WiFi Home_WiFi_5GHz está conectada, cambiará a la ubicación de red Home_WiFi .Observe que los alias de ubicación tienen prioridad sobre la regla del mismo nombre. En el ejemplo anterior, solo el script
~/.locations/Home_WiFi
se ejecutará cuando se conecte a la red WiFi Home_WiFi_5GHz .Con los alias de ubicación, ni siquiera necesita crear ubicaciones de red adicionales para nombres coincidentes de redes WiFi.
Solución de problemas
Puede ver registros extensos con el siguiente comando:
Salida de muestra:
Desinstalación
Primero, descargue el agente de lanzamiento:
Luego, elimine el archivo binario, plist y log:
También puede eliminar archivos de configuración y scripts específicos de ubicación dentro de
~/.locations
:fuente