Disattivare la rete Wi-Fi tramite la barra dei menu equivale a:
networksetup -setairportpower en0 off
... e così, lo stesso di spegnerlo nelle impostazioni di rete.
Non posso parlare ai livelli bassi, ma networksetup
è un'aggiunta di Apple, mentre ifconfig
è standard non solo per BSD, ma anche per Linux. (Anche se i due strumenti sono in definitiva distinti, non solo nella loro implementazione ma API)
Se dovessi indovinare, e suppongo che gli interni di Apple non siano esattamente trasparenti (per favore, qualcuno mi corregga se sei in grado), networksetup
è pensato per controllare l'hardware attuale, il dispositivo Wi-Fi , mentre ifconfig
è un'utilità puramente a livello di sistema operativo. Proprio come si può uscire dall'app di video chat, contro mettere un pezzo di nastro sulla fotocamera.
Alcune cose che posso verificare:
- L'interfaccia, ad esempio
en0
, deve essere sia UP (quindi, ifconfig en0 up
), sia airportpower che è ON (quindi, 'networksetup -setairportpower en0 on).
- Sia
down
ing an iface
, che gira airportpower off
, renderà il simbolo Barra dei menu come una struttura vuota.
- BUT, se entrambi DOWN / off, se porti aeroportopower
on
, se ifconfig ... up
non è stato eseguito dopo aver eseguito ifconfig ... down
, il simbolo non sarà vuoto, e macOS eseguirà una scansione frenetica per le reti, ma essere in grado di: (1) connettersi a una rete (2) portare UP il iface0
(3) modificare la tabella di routing
Quindi, quel simbolo wifi sembra essere il risultato di uno stato di cambiamento, non stato reale. In questo, lo stato effettivo della presenza o meno del Wi-Fi in quanto in grado di connettersi non è collegato all'indicatore visivo. Ma l'interfaccia, anche se GIÙ, sembra in qualche modo scansionare in un modo, nel senso che se si restituisce on
airportpower
, lo "stato:" dato da ifconfig
si scambierà rapidamente indietro & avanti tra active
e inactive
, anche se l'interfaccia effettiva non è UP.
Quindi, c'è incoerenza. Ma è così perché non ci sarebbe alcun motivo per disattivare la seconda dopo aver fatto così il primo. E perché i desideri di Apple & le API ideali differiscono da quelle di BSD.