ターミナル上でプライベートIPアドレスを調べる方法 1
下記コマンドを入力する.
ifconfig
下記出力が得られる.
...
en0: flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
options=XXXX<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
ether XX:XX:XX:XX:XX:XX
inet6 XXXX::XXXX:XXXX:XXXX:XXXX%en0 prefixlen 64 secured scopeid 0xb
inet 192.168.100.158 netmask 0xffffff00 broadcast 192.168.100.255
inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXX:XXXX prefixlen 64 autoconf secured
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
nat64 prefix 64:XXXX:: prefixlen 96
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
...
上記コマンドだと余計な情報が多過ぎる.
プライベートIPアドレスはデバイス名en0
のinet
にある(今回の場合は192.168.100.158
)
古い年式のMacの場合はプライベートIPアドレスが割り当てられているデバイス名はen1
となっている場合が多い.
せっかくなので,プライベートIPアドレスの部分のみ取得を試みる.
ifconfig en0 inet
下記出力が得られる.
en0: flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu XXXX
options=XXXX<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
inet 192.168.100.158 netmask 0xffffff00 broadcast 192.168.100.255
nat64 prefix 64:ff9b:: prefixlen 96
あと少し!
awk
コマンドを用いて,スペース区切り2つ目の文字列を取得
ifconfig en0 inet | awk '{print $2}'
下記出力が得られる.
flags=XXXX<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
192.168.100.158
1行目が余分なので力技で正規表現で絞り込み
ifconfig en1 inet | awk '{print $2}' | grep '^192'
下記出力が得られる.
192.168.100.158
プライベートIPアドレスの取得に成功!
ターミナル上でプライベートIPアドレスを調べる方法 2
ifconfig
と比べると情報量が少ないが実はもうひとつ,ネットワーク状況を調べるための有名なコマンドが存在する.それがnetworksetup -getinfo Wi-Fi
である.
networksetup -getinfo Wi-Fi
下記出力が得られる.
DHCP Configuration
IP address: 192.168.100.158
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
先程と同様に正規表現とawk
コマンドを用いて取得を試みる.
networksetup -getinfo Wi-Fi | grep '^IP address' | awk '{print $3}'
下記出力が得られる.
192.168.100.158
プライベートIPアドレスの取得に成功!
プライベートIPアドレスの用途
PHPでWebサービスを開発する際にビルトインウェブサーバを使い,ローカルサーバを立て他のマシンから接続し動作検証を行う際,プライベートIPアドレスを把握しなければならないケースが出てくる.
ビルトインウェブサーバの使い方
ドキュメントルートへ移動する.
cd /Library/WebServer/Documents
下記コマンドでも可(フルパス表記)
cd ~/../../Library/WebServer/Documents
ビルトインウェブサーバを使いローカルサーバを立てる
例)プライベートIPアドレスが192.168.100.158
の場合
php -S 192.168.100.158:8000