カメニッキ

カメとインコと釣りの人です

Macの固定IP設定をターミナルからさくっとやる(Alfredワークフローあり)

■経緯


会社支給PCを自宅と会社で異なる固定IPとDNSサーバを使用する必要があり、GUIの設定は面倒だったため、コマンドラインで行うことにしました。

■設定したい値


下記は仮の値なので、自身の環境に読み替えてください。

自宅

会社

■事前準備


インターフェース名の確認

[PMAC226S ~]$ networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Bluetooth DUN
(Hardware Port: Bluetooth DUN, Device: Bluetooth-Modem)

(2) USB Ethernet
(Hardware Port: USB Ethernet, Device: en3)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

今回は(3)を使うので「Wi-Fi」を記憶します。

■構文


$ networksetup -setmanual "Wi-Fi" 固定IP サブネットマスク ルータのIP
$ networksetup -setdnsservers "Wi-Fi" DNS① DNS②

■実行


[PMAC226S ~]$ networksetup -setmanual "Wi-Fi" 192.168.11.30 255.255.255.0 192.168.11.1
    →パスワードを聞かれます。これでルータ、固定IPが設定されます。
[PMAC226S ~]$ networksetup -setdnsservers "Wi-Fi" 192.168.11.1 8.8.8.8
    →再びパスワードを聞かれます。(聞かれなくする方法あれば、教えてほしい・・・)DNSの設定が変更されます。

■Alfredのワークフローにした


毎回ターミナル起動してこれ叩くと、GUIで設定するのと変わらんので。

※ 自分用でめちゃくちゃ雑ですが・・・ yasuaki-tahira/change-wifi

↑から「Change the Wi-Fi setting.alfredworkflow」を落としてAlfredに突っ込みます。

使い方

① まずはワークフローの設定画面で、スクリプトを自分の環境に合わせて修正します。

# 雑なのでいい感じにしてください。
if [ {query} = "home" ]; then
    # 自宅用の設定を入れる
    networksetup -setmanual "Wi-Fi" 192.168.11.30 255.255.255.0 192.168.11.1
    networksetup -setdnsservers "Wi-Fi" 192.168.11.1 8.8.8.8
elif [ {query} = "office" ]; then
    # 会社用の設定を入れる
    networksetup -setmanual "Wi-Fi" 192.168.99.32 255.255.255.0 192.168.99.1
    networksetup -setdnsservers "Wi-Fi" 192.168.40.2 192.168.50.5
fi

② Alfredを起動し「cn home」または「cn office」と入力してEnterでターミナルから叩くのと同様の結果となります!

f:id:tapira:20150613011042p:plain

f:id:tapira:20150613011110p:plain