En fonction de mon objectif (dois-je me préoccuper de la fermeture de l'interface de données également ?), je peux choisir le plan en conséquence :
Plan A pour (1) les interfaces de réseau et (2) l'interface de données.
Plan B pour (1) Interfaces réseau
(Plan A #1) Obtenir des informations sur les interfaces matérielles installées (y compris les interfaces de données) :
Tout d'abord, j'aimerais savoir combien et quels types d'interfaces je dois craindre.
$ networksetup -listallhardwareports
Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A
Hardware Port: Ethernet
Device: en0
Ethernet Address: ff:ff:ff:ff:ff:ff
Hardware Port: FireWire
Device: fw0
Ethernet Address: ff:ff:ff:ff:ff:ff:ff:ff
Hardware Port: Wi-Fi
Device: en1
Ethernet Address: ff:ff:ff:ff:ff:f
(Plan A # ?) (Facultatif) Obtenez la liste des interfaces réseau uniquement :
Cette étape me rend facile à grep
.
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi
(Plan A #2) Obtenez le nom du périphérique des interfaces réseau.
J'aimerais savoir quelle(s) interface(s) réseau est/sont active(s).
$ ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ff:ff:ff:ff:ff:ff
media: autoselect (none)
status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ff:ff:ff:ff:ff:ff
inet6 ffff::ffff:ffff:ffff:ffff%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.fff netmask 0xffffff00 broadcast 192.168.1.fff
media: autoselect
status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
lladdr ff:ff:ff:ff:ff:ff:ff:ff
media: autoselect <full-duplex>
status: inactive
(Plan B #1) Localiser airport
ou définir un alias pour la commande airport
si elle n'est pas reconnue :
Mon système n'a pas pu reconnaître airport
j'ai donc dû ajouter la ligne suivante à la commande .bash_profile
.
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'
(Plan B #2) Vérifier le statut actuel de l'AirPort :
$ ./airport -I
agrCtlRSSI: -10
agrExtRSSI: 0
agrCtlNoise: -10
agrExtNoise: 0
state: running
op mode: station
lastTxRate: 100
maxRate: 100
lastAssocStatus: 0
802.11 auth: open
link auth: fffffffffffffffff
BSSID: ff:ff:ff:ff:ff:ff
SSID: MelvNetwork
MCS: 15
channel: 6
(Plan A & B #3)Allumer/éteindre le AirPort :
# For OS X 10.7 and later
$ networksetup -setairportpower en1 on # Turn on Airport
$ networksetup -setairportpower en1 off # Turn off Airport
# for OS X 10.6 and below
$ networksetup -setairportpower on # Turn on AirPort
$ networksetup -setairportpower off # Turn off AirPort
(Plan A & B #4)Allumer/éteindre le BlueTooth :
Télécharger blueutil
aquí .
$ blueutil status # Check status of BlueTooth
Status: on
$ blueutil on # Turn BlueTooth on
$ blueutil off # Turn BlueTooth off
script :
Maintenant que j'ai tous les ingrédients, je peux écrire le script pour OS X 10.7 !
Derniers commentaires :
(1) Certaines des sorties sont masquées par le caractère 'f'.
(2) Selon $ man networksetup
Vous pouvez également configurer le proxy, TCP/IP, PPPoE (non testé).
(3) Suggestion de @RichHomolka, networksetup --enableuserprofile
est déprécié pour OS X 10.7 (non testé dans les autres versions).
(4) Si quelqu'un qui suit la procédure ci-dessus rencontre un problème, pourriez-vous l'aborder dans le commentaire (ou dans une réponse séparée) ?