それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

networksetupコマンドの使い方:ヘルプのみかた

networksetup コマンド

mac には networksetup コマンドという、ネットワークでアレコレするためのコマンドが用意されている。

コマンドでアレコレできるけど、だんだんめんどくさくなって、Xcode立ち上げてAPI叩いちゃうんだけどさ。

networksetup コマンドの気持ちを理解してあげることにした。

バイス(en0) なのか 名前(Wi-Fi) なのか

たとえば、SSIDにつなぐときは次のようにする。

sudo networksetup -setairportnetwork en0  0000docomo shared_key

たとえば、DNSを上書きするには次のようにする

networksetup -setdnsservers Wi-Fi 8.8.8.8

ヘルプを見ると書いてある。

networksetup -setairportpower <device name> <on off>
networksetup -setdnsservers <networkservice> <dns1> [dns2] [...]

ヘルプを見れば書いてあるんだけど、いつもどっちなのか見失う。

<device name> が en0 のようなデバイス<networkservice> がネットワーク名

確認するには

networksetup -listallhardwareports

実行すると、次のようになる。

Hardware Port: Wi-Fi
Device: en0
Ethernet Address: 60:03:xxxxxxxxxx

ここの出力から <networkservice>Hardware Port が対応し、<device name>Device が対応してることがわかる。

無線LANのことは airpot と呼ぶ

無線LANのことは歴史的背景から airport と呼ぶ。Wi-Fiなどのなまえは使わない。

なので無線LAN関連の設定コマンドを見るときは grep で airport してあげればいい。

takuya@my_command$ networksetup -setdnsservers | grep airport
networksetup -getairportnetwork <device name>
networksetup -setairportnetwork <device name> <network> [password]
networksetup -getairportpower <device name>
networksetup -setairportpower <device name> <on off>

プロキシ関連の設定を見たければ

同じように grep で見てあげれば、使い方が出てくる。

takuya@my_command$ networksetup | \grep -P "(?<=networksetup ).+proxy.+"

Usage: networksetup -getwebproxy <networkservice>
Usage: networksetup -setwebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
Usage: networksetup -setwebproxystate <networkservice> <on off>
Usage: networksetup -getsecurewebproxy <networkservice>
Usage: networksetup -setsecurewebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
Usage: networksetup -setsecurewebproxystate <networkservice> <on off>
(略
Usage: networksetup -setautoproxyurl <networkservice> <url>
Usage: networksetup -getautoproxyurl <networkservice>
Usage: networksetup -setautoproxystate <networkservice> <on off>

networksetup でできないこと

たとえば、MACアドレスを変更したり、ルーティング・テーブルを変更したりといったことはできない。

man を見ると、次のように書いてある。

NETWORKSETUP(8)           BSD System Manager's Manual          NETWORKSETUP(8)

NAME
     networksetup -- configuration tool for network settings in System Preferences.

man には次の通り、 network settings in System Preferences. つまり、システム環境設定でできることは全てできるってことですね。

6to4 とかあったんですね。。

すべてのオプションはこれ。。。

おおいなぁ。

takuya@my_command$ networksetup
-addDeviceToBond                     -duplicatenetworkservice             -getinfo                             -listVLANs                           -removepreferredwirelessnetwork      -setmanualwithdhcprouter             -setv4off
-addpreferredwirelessnetworkatindex  -enableloginprofile                  -getmacaddress                       -listallhardwareports                -renamenetworkservice                -setmedia                            -setv6LinkLocal
-connectpppoeservice                 -enablesystemprofile                 -getmedia                            -listallnetworkservices              -set6to4automatic                    -setnetworkserviceenabled            -setv6additionalroutes
-create6to4service                   -enableuserprofile                   -getnetworkserviceenabled            -listalluserprofiles                 -set6to4manual                       -setpassiveftp                       -setv6automatic
-createBond                          -export8021xLoginProfiles            -getpassiveftp                       -listdevicesthatsupportVLAN          -setMTU                              -setpppoeaccountname                 -setv6manual
-createVLAN                          -export8021xProfiles                 -getproxyautodiscovery               -listlocations                       -setadditionalroutes                 -setpppoepassword                    -setv6off
-createlocation                      -export8021xSystemProfile            -getproxybypassdomains               -listloginprofiles                   -setairportnetwork                   -setproxyautodiscovery               -setwebproxy
-createnetworkservice                -export8021xUserProfiles             -getsearchdomains                    -listnetworkserviceorder             -setairportpower                     -setproxybypassdomains               -setwebproxystate
-createpppoeservice                  -getMTU                              -getsecurewebproxy                   -listpppoeservices                   -setbootp                            -setsearchdomains                    -showBondStatus
-deleteBond                          -getadditionalroutes                 -getsocksfirewallproxy               -listpreferredwirelessnetworks       -setcomputername                     -setsecurewebproxy                   -showpppoestatus
-deleteVLAN                          -getairportnetwork                   -getstreamingproxy                   -listvalidMTUrange                   -setdhcp                             -setsecurewebproxystate              -switchtolocation
-deletelocation                      -getairportpower                     -getv6additionalroutes               -listvalidmedia                      -setdnsservers                       -setsocksfirewallproxy               -version
-deleteloginprofile                  -getcomputername                     -getwebproxy                         -ordernetworkservices                -setftpproxy                         -setsocksfirewallproxystate
-deletepppoeservice                  -getcurrentlocation                  -help                                -printcommands                       -setftpproxystate                    -setstreamingproxy
-deleteuserprofile                   -getdnsservers                       -import8021xProfiles                 -removeDeviceFromBond                -setgopherproxy                      -setstreamingproxystate
-detectnewhardware                   -getftpproxy                         -isBondSupported                     -removeallpreferredwirelessnetworks  -setgopherproxystate                 -settlsidentityonsystemprofile
-disconnectpppoeservice              -getgopherproxy                      -listBonds                           -removenetworkservice                -setmanual                           -settlsidentityonuserprofile

参考資料

man networksetup