2018/06/23

ネットワーク環境をCLI変更(macOS 10.13.5)

ChNWsettings2

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

 

 

—名前対応-----

NWpref

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

とりあえず,,,以上

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。