Dependendo do meu objetivo (devo também me preocupar em desligar a interface de dados?), Posso escolher o plano de acordo:
Plano A para (1) interfaces de rede e (2) interface de dados
Plano B para (1) interfaces de rede
(Plano A # 1) Obtenha informações sobre as interfaces de hardware instaladas (incluindo interfaces de dados):
Primeiro, gostaria de saber quantas e com quais tipos de interfaces devo me preocupar.
$ 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
(Plano A #?) (Opcional) Obtenha apenas a lista de interfaces de rede:
Este passo me facilita grep
.
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi
(Plano A # 2) Obtenha o nome do dispositivo das interfaces de rede.
Gostaria de saber quais interfaces de rede estão ativas.
$ 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
(Plano B # 1) Localize o airport
comando ou defina o alias para o airport
comando se não for reconhecido:
Meu sistema não conseguiu reconhecer o airport
comando, então tive que adicionar a linha abaixo a .bash_profile
.
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'
(Plano B # 2) Verifique o status atual do 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
(Planos A e B # 3) Ligar / desligar o 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
(Plano A e B # 4) Ligar / desligar o BlueTooth:
Faça o download blueutil
aqui .
$ blueutil status # Check status of BlueTooth
Status: on
$ blueutil on # Turn BlueTooth on
$ blueutil off # Turn BlueTooth off
Roteiro:
Agora que tenho todos os ingredientes, posso escrever o script para OS X 10.7!
Últimos Comentários:
(1) Parte da saída é mascarada com o caractere 'f'.
(2) De acordo com $ man networksetup
, você pode configurar o proxy, TCP / IP, PPPoE também (não testado).
(3) A sugestão de RichHomolka networksetup --enableuserprofile
foi descontinuada para o OS X 10.7 (não testado em outras versões).
(4) Se alguém que segue o procedimento acima encontrar um problema, você poderia resolvê-lo no comentário (ou em uma resposta separada)?