最も簡単なプライベートIPアドレスの調べ方
わざわざターミナルでコマンドを入力しなくても,システム環境設定>ネットワーク>[ 詳細 ]ボタン押下>TCP/IPタブ>IPv4アドレスの欄から簡単に調べる事ができるが,ネットワーク系のスキルを向上させるためにはやはり最低限のターミナルコマンドを使いこなせなければならないというのが筆者の持論である.
Image may be NSFW.
Clik here to view.
ターミナル上でプライベートIPアドレスを調べる方法 1
macOSにおいてネットワーク状況を調べるための有名なコマンドと言えばifconfig
.Windowsでいうところのipconfig
に相当するものである.
$ ifconfig
lo0: flags=XXXX<UP,LOOPBACK,RUNNING,MULTICAST> mtu XXXXX
options=3<RXCSUM,TXCSUM>
inet6 ::1 prefixlen XXX
inet 127.0.0.1 netmask 0XXX000000
inet6 XXXX::XXXXX prefixlen 64 scopeid XXX
nd6 options=1<PERFORMNUD>
gif0: flags=XXXX<POINTOPOINT,MULTICAST> mtu XXXX
stf0: flags=0<> mtu XXXX
en0: flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
ether XX:XX:XX:XX:XX:XX
nd6 options=1<PERFORMNUD>
media: autoselect
status: inactive
en1: flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
ether XX:XX:XX:XX:XX:XX
inet6 XXXX::XXX:XXXX:XXXX:XXXXXXXX prefixlen 64 scopeid XXX
inet 192.168.100.103 netmask XXXXXXXXXX broadcast 192.168.100.XXX
inet6 XXXX:XXXX:XXX:XXXX:XXX:XXXX:XXXX:XXXX prefixlen 64 autoconf
inet6 XXXX:XXXX:XXX:XXXX:XXXX:XXXX:XXXX:XXXX prefixlen 64 autoconf temporary
inet6 XXXX:XXXX:XXX:XXXX:XXX:XXXX:XXXX:X prefixlen 64 dynamic
nd6 options=1<PERFORMNUD>
media: autoselect
status: active
p2p0: flags=XXXX<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
ether XX:XX:XX:XX:XX:XX
media: autoselect
status: inactive
上記コマンドだと余計な情報が多過ぎる.
プライベートIPアドレスはen1のinetにある(今回の場合は192.168.100.103)
せっかくなので,スクレイピングしてプライベートIPアドレスの部分のみ取得を試みる.
$ ifconfig en1 inet
en1: flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
inet 192.168.100.103 netmask XXXXXXXXXX broadcast 192.168.100.XXX
あと少し!
awkコマンドを用いて,スペース区切り2つ目の文字列を取得
$ ifconfig en1 inet | awk'{print $2}'flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
192.168.100.103
1行目が余分なので力技で正規表現で絞り込み
$ ifconfig en1 inet | awk'{print $2}' | grep'^192'
192.168.100.103
無事にプライベートIPアドレスの取得に成功!
ターミナル上でプライベートIPアドレスを調べる方法 2
ifconfig
と比べると情報量が少ないが実はもうひとつ,ネットワーク状況を調べるための有名なコマンドが存在する.それがnetworksetup -getinfo Wi-Fi
である.
それでは実行してみよう
$ networksetup -getinfo Wi-Fi
DHCP Configuration
IP address: 192.168.100.103
Subnet mask: 255.255.255.0
Router: 192.168.100.1
Client ID:
IPv6: Automatic
IPv6 IP address: none
IPv6 Router: none
Wi-Fi ID: XX:XX:XX:XX:XX:XX
確かに情報量が少なくプライベートIPアドレスを見つけやすい.
先程と同様に正規表現とawkコマンドを用いて取得を試みる.
$ networksetup -getinfo Wi-Fi | grep'^IP address' | awk'{print $3}'
192.168.100.103
無事にプライベートIPアドレスの取得に成功!
プライベートIPアドレスの用途
筆者のようにPHPでWebアプリケーションを開発する際にビルトインウェブサーバを立て,同じネットワーク内の他のマシンからサーバマシンに接続しテストを行う際にプライベートIPアドレスを把握しなければならないケースが出てくる.
ビルトインウェブサーバの立て方
ドキュメントルートへ移動
$ cd ~/Library/WebServer/Documents
ビルトインウェブサーバを立てる
例)プライベートIPアドレスが192.168.100.103の場合
$ php -S 192.168.100.103:8000