9 votes

Comment vérifier l'état de l'adaptateur Wi-Fi via la ligne de commande?

J'ai lu quelques piles sur internet mais la ligne de commande n'était utilisée que pour activer ou désactiver le Wi-Fi, mais aucune d'entre elles pour vérifier l'état marche/arrêt du Wi-Fi.

Y a-t-il un moyen de vérifier l'état de l'adaptateur Wi-Fi en marche ou arrêt en ligne de commande?

14voto

user3439894 Points 52496

Vous pouvez utiliser la ifconfig commande, par exemple :

$ ifconfig en0 
en0: flags=8863 mtu 1500
    ether # Supprimé pour des raisons de sécurité. 
    inet6 fe80::c44:6ce5:5d57:5b93%en0 prefixlen 64 secured scopeid 0x9 
    inet 192.168.2.101 netmask 0xffffff00 broadcast 192.168.2.255
    nd6 options=201
    media: autoselect
    status: active
$

Vous pouvez également filtrer la sortie, par exemple :

$ ifconfig en0 | awk '/status:/{print $2}'
active
$ 

Lorsque non actif, la sortie est, par exemple :

$ ifconfig en0 | awk '/status:/{print $2}'
inactive
$

Si vous ne connaissez pas le nom du périphérique pour l'adaptateur Wi-Fi, vous pouvez utiliser les exemples suivants :

$ networksetup -getairportpower $(system_profiler SPAirPortDataType | awk -F: '/Interfaces:/{getline; print $1;}')
Wi-Fi Power (en0): On
$

Ou :

$ ifconfig $(system_profiler SPAirPortDataType | awk -F: '/Interfaces:/{getline; print $1;}') | awk '/status:/{print $2}'
active
$

8voto

Gordon Davisson Points 30215

En plus de ifconfig et networksetup, il y a aussi la commande airport. Elle se trouve dans un endroit obscur, donc vous devez spécifier le chemin complet pour y accéder (ou créer un alias, comme je l'ai fait). Je trouve les options -I (afficher l'état actuel) et -s (scanner les réseaux) les plus utiles (bien qu'elles soient considérées comme "obsolètes"). Voici un exemple :

$ alias airport=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
$ airport -I
AirPort: Off
$ # [Allume la radio...]
$ airport -I
     agrCtlRSSI: -49
     agrExtRSSI: 0
    agrCtlNoise: -88
    agrExtNoise: 0
          state: running
        op mode: station 
     lastTxRate: 300
        maxRate: 300
lastAssocStatus: 0
    802.11 auth: open
      link auth: wpa2-psk
          BSSID: 88:d7:f6:25:c4:37
           SSID: NotMyRealName
            MCS: 15
        channel: 40,-1

Vous pouvez utiliser le drapeau -h pour obtenir une liste de ses options.

6voto

laughing Points 73

En fait, networksetup a la commande pour retourner le statut de l'alimentation de l'aéroport également.

networksetup -getairportpower *spécifier l'interface*

Par exemple:

networksetup -getairportpower en0

1voto

Jon Points 101

La manière la plus simple d'obtenir le nom du périphérique est d'utiliser l'option listallhardwareports de networksetup. Il affiche proprement tous les noms de périphérique pour chaque interface immédiatement (par exemple, il n'a pas besoin de sonder l'état du périphérique et de prendre quelques secondes pour revenir comme le fait system_profiler).

En s'appuyant sur la réponse de l'utilisateur 3439894, la commande pour obtenir de manière programmatique le nom de l'adaptateur "Wi-Fi" serait :

networksetup -getairportpower $(networksetup -listallhardwareports | awk -F: '/Wi-Fi/{getline; print $2;}')

Cela peut être utilisé pour n'importe quel nom d'adaptateur (pas seulement Wi-Fi), et pourrait facilement être paramétré dans un script, par exemple :

getDeviceNameFromAdapterName() {
    networksetup -listallhardwareports | awk -v adapter="$1" -F : '$0~adapter{getline; print $2;}'
}

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X