Wyłączenie Wi-Fi za pomocą paska menu jest równoznaczne z:
networksetup -setairportpower en0 off
... i tak samo jak wyłączenie w ustawieniach sieciowych.
Nie mogę mówić do niskich poziomów, ale networksetupjest dodatkiem Apple, podczas gdy ifconfigjest standardem nie tylko dla BSD, ale także dla Linuksa. (Mimo że oba narzędzia są ostatecznie różne, nie tylko w ich implementacji, ale także w interfejsie API)
Gdybym musiał zgadywać i zgadnę, ponieważ wewnętrzne elementy Apple'a nie są dokładnie przezroczyste (proszę, jeśli ktoś jest w stanie poprawić mnie), networksetupma on kontrolować rzeczywisty sprzęt, urządzenie Wi-Fi, podczas gdy ifconfigjest to czysto system operacyjny -poziomowe narzędzie. Podobnie jak w przypadku aplikacji do czatowania wideo, umieść kawałek taśmy nad kamerą.
Kilka rzeczy, które mogę zweryfikować:
- Powiedzmy, że interfejs
en0musi być zarówno UP (tak, ifconfig en0 up), jak i WŁĄCZONA moc portu lotniczego (więc `networksetup -setairportpower en0 on).
- Zarówno
downing ifacei zwracając airportpower off, będzie świadczyć symbol Pasek menu w postaci wydrążonego konturu.
- ALE, jeśli zarówno DOWN / off, jeśli włączysz moc lotniska
on, jeśli ifconfig ... upnie został uruchomiony po uruchomieniu ifconfig ... down, symbol nie będzie pusty, a macOS będzie gorączkowo skanować w poszukiwaniu sieci, ale nie będzie w stanie: (1) połączyć się z siecią ( 2) przywołaj iface0(3) zmień tablicę routingu
Ten symbol Wi-Fi wydaje się być wynikiem zmiany stanu, a nie stanu faktycznego. W związku z tym rzeczywisty stan tego, czy Wi-Fi jest pokazywany jako zdolny do połączenia, nie jest podłączony do wskaźnika wizualnego. Ale interfejs, nawet jeśli w dół, wydaje się jakoś zeskanować w taki sposób, że jeśli zawrócić ondo airportpowertego, „status:” nadany przez ifconfigzamieni się szybko z powrotem i naprzód między activei inactive, nawet jeśli rzeczywisty interfejs nie jest UP.
Jest więc niespójność. Ale tak jest, ponieważ nie byłoby powodu wyłączać drugiego po zrobieniu tego pierwszego. A ponieważ pragnienia Apple'a i idealny API różnią się od tych z BSD.