Node.jsのnetモジュールを使ってローカルIPアドレスを取得する方法
Node.jsでローカルIPアドレスを取得する方法
os
モジュールは、オペレーティングシステムに関する情報を提供します。このモジュールを使用して、ローカルIPアドレスを取得するには、以下のコードを使用します。
const os = require('os');
const networkInterfaces = os.networkInterfaces();
for (const networkInterface of Object.values(networkInterfaces)) {
if (networkInterface.family === 'IPv4' && !networkInterface.internal) {
console.log(networkInterface.address);
break;
}
}
このコードは、すべてのネットワークインターフェースをループ処理し、IPv4アドレスで内部ネットワークではないアドレスを見つけます。見つかったアドレスはコンソールに出力されます。
const ip = require('ip');
const address = ip.address();
console.log(address);
このコードは、ip.address()
関数を使用して、最初の有効なIPv4アドレスを取得します。
const net = require('net');
const server = net.createServer();
server.listen(() => {
const address = server.address().address;
console.log(address);
server.close();
});
このコードは、一時的なサーバーを作成し、そのサーバーのアドレスを取得します。サーバーはすぐに閉じられます。
Node.jsでローカルIPアドレスを取得するには、いくつかの方法があります。どの方法を使用するかは、要件と環境によって異なります。
const os = require('os');
const networkInterfaces = os.networkInterfaces();
for (const networkInterface of Object.values(networkInterfaces)) {
if (networkInterface.family === 'IPv4' && !networkInterface.internal) {
console.log(networkInterface.address);
break;
}
}
このコードをファイルに保存し、以下のコマンドを使用して実行できます。
node get-local-ip-address.js
出力は、ネットワークインターフェースによって異なりますが、次のようなものになります。
192.168.1.100
以下のリンクは、Node.jsでローカルIPアドレスを取得する方法を示す他のサンプルコードへのリンクです。
Node.jsでローカルIPアドレスを取得する他の方法
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::200:5efe:feff:ffff%eth0 prefixlen 64 scopeid 0x20
ether 00:50:56:c0:00:08 txqueuelen 1000 (Ethernet)
RX packets 137833 bytes 15971764 (15.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 137824 bytes 15970512 (15.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1/128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 80 bytes 6400 (6.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 80 bytes 6400 (6.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
この出力から、inet
行の最初の IP アドレスがローカルIPアドレスです。
hostname -I
192.168.1.100
Web API の使用
いくつかの Web API は、ローカルIPアドレスを含む情報を提供します。これらの API を使用するには、HTTP リクエストを送信して応答を解析する必要があります。
javascript node.js ip