Apagar el wifi a través de la barra de menús equivale a:
networksetup -setairportpower en0 off
... y así, lo mismo que desactivarlo en los ajustes de red.
No puedo hablar de los niveles bajos, pero networksetup
es una adición de Apple, mientras que ifconfig
es estándar no sólo para BSD, sino también para Linux. (Aunque las dos utilidades son en última instancia distintas, no sólo en su implementación sino en la API)
Si tuviera que adivinar, y voy a adivinar ya que las internas de Apple no son precisamente transparentes (por favor, que alguien me corrija si es capaz), networksetup
está destinado a controlar el hardware real, el dispositivo Wi-Fi, mientras que ifconfig
es una utilidad puramente a nivel del sistema operativo. Al igual que puedes salir de tu aplicación de videochat, frente a poner un trozo de cinta adhesiva sobre la cámara.
Algunas cosas que puedo verificar:
- Para funcionar, tanto la interfaz, digamos,
en0
, debe ser ARRIBA (así, ifconfig en0 up
), así como airportpower
siendo ON (así, networksetup -setairportpower en0 on
).
- Ambos
down
de un iface
y girando el poder del aeropuerto off
, mostrará el símbolo de la barra de menús como un contorno hueco.
- PERO, si los dos se bajan/apagan, si se lleva la energía del aeropuerto
on
, si ifconfig ... up
no se ha ejecutado después de ejecutar ifconfig ... down
, entonces el símbolo no estará hueco, y MacOS buscará frenéticamente las redes, pero será incapaz de hacerlo: (1) conectarse a una red (2) traer el iface0
(3) cambiar la tabla de enrutamiento
Por lo tanto, ese símbolo de wifi parece ser el resultado de un cambio de estado, no de un estado real. En ese sentido, el estado real de si el Wi-Fi se muestra como capaz de conectarse o no, no está conectado al indicador visual. Pero la interfaz, incluso cuando está en posición ABAJO, parece escanear de alguna manera, en el sentido de que si se vuelve on
el airportpower
el "estado:" dado por ifconfig
cambiará rápidamente de un lado a otro entre active
y inactive
incluso si la interfaz real no es UP.
Por lo tanto, hay incoherencia. Pero es así porque no habría ninguna razón para desactivar la segunda después de haber hecho la primera. Y porque los deseos de Apple y la API ideal difieren de los de BSD.