Nuxtみたいに、Expressの起動時に、
ローカルのIPアドレスを表示したいなと思い、
いろいろ調べたときの備忘録。
ℹ Listening on: http://192.168.11.6:3000/
IP(node-ip)という、Node.js用のIPアドレスのユーティリティがあるらしい。
・indutny/node-ip: IP address tools for node.js
Nuxt.jsの@nuxt/serverのコードで使われていた。
使い方
まずはインストール。
$ npm i ip $ npm i -D @types/ip
ip.address()
でIPアドレスを取得できる。
Nuxtみたいな感じにしてみる。
import ip from "ip"; import express from "express"; const app = express(); const port = Number(process.env.PORT || 8000); const hostname = process.env.HOST || "0.0.0.0"; app.listen(port, hostname, () => { const host = ip.address(); console.log(`ℹ Listening on: http://${host}:${port}`); });
おまけ: 標準ライブラリを使った方法
調べてみたときに、最初にヒットしたのはこっちで、
node-ipの中でも使われている方法。
import { networkInterfaces } from "os"; function getIpAddress() { const nets = networkInterfaces(); const net = nets["en0"]?.find((v) => v.family == "IPv4"); return !!net ? net.address : null; } const host = getIpAddress();
以上! 便利(´ω`)