local IP アドレスを取得したい。
Google先生は賢いなぁ、色々教えてもらった。
割と初歩的なことらしくお恥ずかしい…
Node module の os.networkInterfaces を使うとよいそうです。
node.js/api/os.networkInterfaces
stackoverflow: Get local IP address in node.js
matthew-jackson.com: Find and Store your IP Address with Node
"use strict"; var gulp = require( 'gulp' ); var os = require('os'); var ifaces = os.networkInterfaces(); var ipAddress; Object.keys(ifaces).forEach(function (ifname) { ifaces[ifname].forEach(function (iface) { if ('IPv4' !== iface.family || iface.internal !== false) { // skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses return; } console.log(ifname, iface.address); // en0 192.168.1.NNN ipAddress = iface.address; }); }); |
な感じで分かるらしいです。
networkInterfaces の familyが’IPv4′ で internalがtrue だと local ip address なんだね。
【おまけ】
BrowserSync を IP アドレスで立ち上げたくて調べてたけど必要ありませんでした。
BrowserSync の openオプションを使えば良いだけでした。
BrowserSync#open
open: 'external'
とすると ‘localhost’ でなく IP アドレスで起動してくれました。
はぁ〜