OSXのネットワーク環境の変更について、UNIXライクなifconfig等でなく、OSX由来のコマンド(networksetup,systemsetup,scselect等)を使って変更するメモです
ネットワーク環境の(初期)設定については書かれていません< networksetup等で別途行います
===目次==============================
---現在のネットワークサービス/ハードウエアポート/デバイス名等を表示-----
-ハードウエアポート/デバイス名等を表示
-定義したネットワークサービス/ハードウエアポート/デバイス名等の対応を表示
-その簡易表示(定義したネットワークサービス名のみ表示)
---ネットワーク環境関連-----
-ネットワーク環境名のリスト(と現在の環境)を表示
-hogeネットワーク環境に変更
---Bluetooth関連-----
-Bluetoothの状態を表示
-BluetoothをONにする
-BluetoothをOFFにする
-Bluetooth機器のリストを表示(設定済みのもの)
-Bluetooth機器に接続する(UI Script以外でできる??)
---Wi-Fi関連-----
-WiFi(airportの)のON/OFFを表示
-Wi-FI(airportの)をONに
-Wi-FI(airportの)をOFFに
-過去に使ったWi-Fiネットワークを表示
-Wi-FI環境をスキャン
-(特定の)Wi-Fiネットワークに接続
-Wi-Fiネットワーク(airport)の接続解除
-現在接続中のWi-FiネットワークのSSIDを表示
-現在接続中のWi-Fiネットワークの状態を表示(無線LAN情報)
-現在接続中のWi-Fiネットワークの状態を表示(IPネットワーク情報)
-現在の定義したネットワークサービス/ハードウエアポート/デバイス名等の対応を表示
-その簡易表示(定義したネットワークサービス名のみ表示)
-補足
===内容==============================
---現在のネットワークサービス/ハードウエアポート/デバイス名等を表示-----
-ハードウエアポート/デバイス名等を表示
$ networksetup -listallhardwareports
-定義したネットワークサービス/ハードウエアポート/デバイス名等の対応を表示
$ networksetup -listnetworkserviceorder
-その簡易表示(定義したネットワークサービス名のみ表示)
$ networksetup -listallnetworkservices
---ネットワーク環境関連-----
-ネットワークロケーション名のリスト(と現在の設定)を表示
networksetupだと
$ networksetup -listlocations
$ networksetup -getcurrentlocation
scselectだと
$ scselect
-hogeネットワークロケーションに変更
networksetupだと
$ networksetup -switchtolocation hoge
scselectだと
$ scselect hoge
---Bluetooth関連-----
-Bluetoothの状態を表示
$ defaults read /Library/Preferences/com.apple.Bluetooth ControllerPowerState
0: OFF / 1: ON
($ system_profiler -detailLevel full SPBluetoothDataType でもいけるけど)
-BluetoothをONにする
$ sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1
$ sudo killall -HUP bluetoothd
-BluetoothをOFFにする
$ sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 0
$ sudo killall -HUP bluetoothd
-Bluetooth機器のリストを表示(設定済みのもの)
$ system_profiler SPBluetoothDataType
(結構メンドウ..)
-Bluetooth機器に接続する(UI Script以外でできる??)
セキュリティとプライバシー の プライバシー タブで制御許可しておいてから..
(Ref: Bluetoothのオン/オフと接続をCLIで
<http://innovate-shoma.blogspot.com/2018/06/bluetoothclimacos-high-sierra.html>)
#/bin/bash
/usr/bin/osascript <<- EOD
tell application "System Events"
tell process "SystemUIServer"
tell (menu bar item 1 of menu bar 1 whose description contains "bluetooth")
click
tell (menu item "SomeBTName" of menu 1) —Bluetooth名を指定
click
click menu item 1 of menu 1 —トグルでON/OFF
end tell
end tell
end tell
end tell
EOD
---Wi-Fi関連-----
(もちろん $ ifconfig 系でもいいけれど:-p)
-Wi-Fi(airportの)のON/OFFを表示
$ networksetup -getairportpower en0
-Wi-FI(airportの)をONに
$ networksetup -setairportpower en0 on
-Wi-FI(airportの)をOFFに
$ networksetup -setairportpower en0 off
-過去に使ったWi-Fiネットワークを表示
$ networksetup -listpreferredwirelessnetworks en0
-Wi-FI環境をスキャン
$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
-(特定の)Wi-Fiネットワークに接続
SSID:hoge / パスフレーズ:PassPhraseの場合
$ networksetup -setairportnetwork en0 hoge PassPhrase
-Wi-Fiネットワーク(airport)の接続解除
$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z
-現在接続中のWi-FiネットワークのSSIDを表示
$ networksetup -getairportnetwork en0
-現在接続中のWi-Fiネットワークの状態を表示(無線LAN情報)
$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
-現在接続中のWi-Fiネットワークの状態を表示(IPネットワーク情報)
ネットワークサービス名がhogeの場合(下記述 $ networksetup -listallnetworkservicesがhoge)
$ networksetup -getinfo hoge
-現在の定義したネットワークサービス/ハードウエアポート/デバイス名等の対応を表示
$ networksetup -listnetworkserviceorder
-その簡易表示(定義したネットワークサービス名のみ表示)
$ networksetup -listallnetworkservices
===補足=================
—例-----
$ networksetup -listallhardwareports
Hardware Port: GU-1000T
Device: en7
Ethernet Address: 00:90:cc:xx:xx:xx
Hardware Port: Apple USB Ethernet Adapter
Device: en2
Ethernet Address: 00:1e:c2:xx:xx:xx
Hardware Port: iPhone USB
Device: en4
Ethernet Address: 6a:db:ca:xx:xx:xx
Hardware Port: Wi-Fi
Device: en0
Ethernet Address: 28:37:37:xx:xx:xx
Hardware Port: Bluetooth PAN
Device: en3
Ethernet Address: 28:37:37:xx:xx:xx
Hardware Port: Thunderbolt 1
Device: en1
Ethernet Address: b2:00:xx:xx:xx
Hardware Port: Thunderbolt Bridge
Device: bridge0
Ethernet Address: b2:00:1f:xx:xx:xx
VLAN Configurations
===================
$ networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Apple_USB_Ethernet
(Hardware Port: Apple USB Ethernet Adapter, Device: en2)
(2) MR04LN_USB
(Hardware Port: LTE Mobile Router, Device: en5)
(3) AirCard785S_USB
(Hardware Port: AirCard 785S, Device: en6)
(4) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)
(5) IPhone_USB
(Hardware Port: iPhone USB, Device: en4)
(6) Bluetooth_PAN
(Hardware Port: Bluetooth PAN, Device: en3)
(7) Thunderbolt_Bridge
(Hardware Port: Thunderbolt Bridge, Device: bridge0)
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Apple_USB_Ethernet
MR04LN_USB
AirCard785S_USB
Wi-Fi
IPhone_USB
Bluetooth_PAN
Thunderbolt_Bridge
$ networksetup -listlocations
Tether_iPhone_via_USB
Automatic
AppleUSB-EtherAdt
Wi-Fi
Tether_AC785_via_USB
Tether_via_BT
Tether_MR04LN_via_USB
$ networksetup -getcurrentlocation
Automatic
$ networksetup -switchtolocation Automatic
found it!
$ scselect
Defined sets include: (* == current set)
A18C9F81-AE73-44BD-B279-E3E6BC5276C6 (Tether_iPhone_via_USB)
EF73ECCB-B21A-4CC1-93C9-0549AE85D4BB (Automatic)
*C21FA685-2687-4BCB-A3ED-29BA14F167EE (AppleUSB-EtherAdt)
441843F3-0023-42AE-8A12-728811DB63C7 (Wi-Fi)
7A211F45-BB09-4551-8114-8E0A492105B3 (Tether_AC785_via_USB)
02F06DBC-1034-4253-AD31-3C18092C4D14 (Tether_via_BT)
F39448D9-7B5D-4778-9B1B-4C8C3DA23AD7 (Tether_MR04LN_via_USB)
$ scselect Automatic
CurrentSet updated to EF73ECCB-B21A-4CC1-93C9-0549AE85D4BB (Automatic)
$ defaults read /Library/Preferences/com.apple.Bluetooth ControllerPowerState
0
$ sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1
$ defaults read /Library/Preferences/com.apple.Bluetooth ControllerPowerState
1
$ sudo killall -HUP bluetoothd
$ system_profiler SPBluetoothDataType |grep -B1 -A3 Address
Name: MacBook_Air_11
Address: 28-37-37-xx-xx-xx
Bluetooth Low Energy Supported: Yes
Handoff Supported: No
Instant Hot Spot Supported: No
--
--
aterm-hogehoge:
Address: C0-25-A2-xx-xx-xx
Major Type: LAN Access Point
Minor Type: LAN Access Point
Services: hfp_ag, Generic Access Profile, Dialup Networking, Network service, Generic Attribute Profile
--
--
iPhone6s_Plus:
Address: 68-DB-CA-xx-xx-xx
Major Type: Phone
Minor Type: Smartphone
Services: Wireless iAP v2, PAN Network Access Profile, Wireless iAP, Handsfree Gateway, Audio Source, AVRCP Device, MAP MAS-iOS, AVRCP Device, Phonebook
--
--
JPRiDE-JPA2:
Address: E3-28-E9-xx-xx-xx
Major Type: Audio
Minor Type: Headset
Services: CSR GAIA邃「, Hands-Free unit, Headset
--
--
TaoTronics TT-BH07:
Address: E3-28-E9-xx-xx-xx
Major Type: Audio
Minor Type: Headset
Services: Hands-Free unit, CSR GAIA邃「, Headset
--
--
TaoTronicsTT-BH07-CSRGA:
Address: E3-28-E9-xx-xx-xx
RFCOMM Channel: 1
Requires Authentication: No
JPRiDE-JPA2-CSRGAIA:
--
--
JPRiDE-JPA2-CSRGAIA:
Address: E3-28-E9-xx-xx-xx
RFCOMM Channel: 1
Requires Authentication: No
iPhone6s_Plus-Wirelessi:
--
--
iPhone6s_Plus-Wirelessi:
Address: 68-DB-CA-xx-xx-xx
RFCOMM Channel: 1
Requires Authentication: No
—名前対応-----
networkservice: ユーザが定義したネットワークサービス名/("AirportExtreame"等)
device name: いわゆるBSD名/インターフェイス名("en0"等)
hardwareport: 論理インターフェイス名(Wi-Fi,Thunderboltブリッジ,PPPoE等)
Location: ユーザが定義したネットワークロケーション名("自宅のネットワーク"etc.)
—諸々-----
Airportを利用するネットワークサービスが一つしか定義されていない場合、その(一つの)ネットワークサービスを無効にする>Airportがオフになるみたい
例:
Wi-Fi_airportという”ネットワークサービス名”のみがAirportを利用 -> Wi-Fi_airportを無効にすると自動的に”Airportもオフ”になる
複数のネットワークサービスでAirportを利用している場合はそうならない
ネットワークサービス/ハードウエアポート/BSD名は下記にも書かれてる
/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
/Library/Preferences/SystemConfiguration/preferences.plist
諸々のマニュアル(へのURLリンク:-p)
- networksetup
- sytemsetup
- scselect
とりあえず,,,以上