Node.jsのnetモジュールを使ってローカルIPアドレスを取得する方法

2024-04-02

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


もうバグは起こさせない!ドラッグ&ドロップでファイルを誤ってアップロードしてしまうのを防ぐJavaScript、jQuery、HTMLテクニック

このガイドでは、JavaScript、jQuery、HTML を使って、ブラウザがドラッグアンドドロップされたファイルを自動的にロードするのを防ぐ方法について説明します。これは、ファイルをアップロードするための専用のインターフェースを構築したい場合や、ユーザーが誤ってファイルをドロップしてしまうのを防ぎたい場合などに役立ちます。...


Moment.jsを使った日付変換の実例

このチュートリアルでは、Moment. js を使って Moment. js オブジェクトを JavaScript のネイティブな Date オブジェクトに変換する方法を説明します。Moment. js ライブラリ変換したい Moment...


Visual Studio CodeでJavaScriptのWebアプリケーション開発

Visual Studio CodeでJavaScriptファイルを実行するには、以下の方法があります。拡張機能を使うJavaScriptコードの実行を簡単にする拡張機能が多数公開されています。代表的な拡張機能は以下の通りです。Debugger for Chrome: Chromeブラウザでコードをデバッグ...


Redux ストアをデバッグする 3 つの方法: React Dev Tools、redux-devtools、コンソールログ

React Dev Tools は、React アプリケーションをデバッグするための拡張機能です。 このツールを使用すると、Redux ストアを含むアプリケーションの状態を簡単に検査できます。使い方:ブラウザでデバッグ対象の Web ページを開きます。デベロッパーツールを開きます (F12 キーなど)。"React" タブを選択します。左側のツリービューで、ストアノードを選択します。右側のペインで、ストアの状態を確認できます。...


Angular コンポーネントで ngOnInit、ngOnChanges、ngAfterContentInit、ngAfterViewInit ライフサイクルフックを駆使してデータ処理を行う方法

Angular コンポーネントにおいて、入力データはコンポーネントのライフサイクルの特定のタイミングでのみ利用可能です。 以下のライフサイクルフックで、コンポーネントに入力データが利用できます。ngOnInit最も一般的に使用されるフックで、コンポーネントが初期化された直後に呼び出されます。 コンポーネントの初期化処理や、入力データに基づいた処理を行うのに適しています。...