ip : 自端末の IP アドレスを調べる npm パッケージ

MacOS なんかだと、「システム環境設定」→「ネットワーク」と進んだ時に、

Wi-Fi は HOGEFUGA に接続していて、IPアドレス 10.200.15.250 が設定されています。

なんて表示されたりして、自端末の IP アドレスが確認できる。

この情報を Node.js スクリプト内で参照したくなったので調べたところ、ip というパッケージで実現できそうだった。

# ip をローカルインストールする
$ npm i -S ip

# ローカルインストールされた ip を参照して IP アドレスを取得する
$ node -pe "require('ip').address()"
10.200.15.250

ip は CLI 向けの API がないので、こんな確認方法になっている。node -e でワンライナー実行、node -p でメソッドの実行結果をコンソール出力、とできる Node.js の REPL のオプション。

ちなみに ip をグローバルインストールしたときは、以下のように ip パッケージがインストールされているディレクトリまでフルパス指定すれば参照できた。ちと無理やりなので止めた方がよか…。

# ip をグローバルインストールしてみる
$ npm i -g ip

# グローバルインストールされた先のディレクトリを記述する
# 自分の場合、Nodebrew を利用しているのでこんなパスになった
$ node -pe "require('/Users/Neo/.nodebrew/node/v10.7.0/lib/node_modules/ip').address()"

Node.js スクリプトで使用する場合はこんな感じ。

const ip = require('ip');

console.log(`My Server URL : http://${ip.address()}/`);

楽チン!