Es gibt (mindestens) vier verschiedene Möglichkeiten, wie ich mein WLAN auf meinem Mac deaktivieren kann:
sudo ifconfig en0 down
networksetup -setnetworkserviceenabled Wi-Fi off
Die ersten beiden sind gleichwertig, dh sie ändern dieselbe Einstellung.
Was ich auf niedrigem Niveau verstehen möchte, ist, was die grundlegenden Unterschiede zwischen 1, 3 und 4 sind?
Das Ausschalten des WLANs über die Menüleiste ist gleichbedeutend mit:
networksetup -setairportpower en0 off
... und so, das gleiche wie das Ausschalten in den Netzwerkeinstellungen.
Ich kann nicht zu den niedrigen Ebenen sprechen, aber networksetup
es ist eine Apple-Ergänzung, während ifconfig
es nicht nur für BSD, sondern auch für Linux Standard ist. (Obwohl sich die beiden Dienstprogramme letztendlich nicht nur in ihrer Implementierung, sondern auch in ihrer API unterscheiden)
Wenn ich raten müsste, und ich werde raten, da Apples Interna nicht genau transparent sind (bitte korrigiert mich jemand, wenn Sie dazu in der Lage sind), soll die networksetup
eigentliche Hardware, das Wi-Fi-Gerät, gesteuert werden, während ifconfig
es sich um ein reines Betriebssystem handelt -Level-Dienstprogramm. Ähnlich wie Sie Ihre Video-Chat-App beenden können, anstatt ein Stück Klebeband über die Kamera zu legen.
Ein paar Dinge, die ich überprüfen kann:
en0
, UP (so, ifconfig en0 up
) als auch airportpower
ON (so, networksetup -setairportpower en0 on
) sein.down
das Drücken von iface
als auch das Drehen von airportpower off
wird das Menüleistensymbol als hohlen Umriss darstellen.on
, wenn ifconfig ... up
es nach dem Ausführen nicht ausgeführt wurde ifconfig ... down
, dann wird das Symbol nicht leer sein und macOS wird hektisch nach Netzwerken suchen, aber nicht in der Lage sein: (1) sich mit einem Netzwerk zu verbinden ( 2) Bringen Sie UP iface0
(3) ändern Sie die Routing-TabelleDieses WLAN-Symbol scheint also das Ergebnis einer Zustandsänderung zu sein, nicht des tatsächlichen Zustands. Dabei ist der tatsächliche Zustand, ob Wi-Fi als verbindungsfähig angezeigt wird oder nicht, nicht mit der visuellen Anzeige verbunden. Aber die Schnittstelle scheint, selbst wenn sie DOWN ist, irgendwie zu scannen, da, wenn Sie on
die zurückdrehen airportpower
, der von angegebene "Status:" schnell zwischen und hin und her ifconfig
wechselt , selbst wenn die eigentliche Schnittstelle nicht UP ist.active
inactive
Es liegt also eine Inkonsistenz vor. Aber es ist so, weil es keinen Grund gäbe, den zweiten nach dem ersten auszuschalten. Und weil sich Apples Wünsche und ideale API von denen von BSD unterscheiden.
Fahrrad