node.jsでMACアドレスを簡単に取得できるライブラリ「getmac」の紹介です。

IPアドレスはWeb関連に関わっている人にお馴染みですが、MACアドレスはどうでしょうか?

IPアドレスはネットワーク通信を行う時に利用されているのに対し、MACアドレスはネットワーク通信を行う機器に物理的に登録されてる16進数で記載されたユニークアドレスです。

ざっくり言うと、MACアドレスはイーサーネットやWiFiモジュール等の全ての機器に登録されてるので コンピューター本体を識別できます。

そんなMACアドレスを " getmac " を使うと簡単に取得出来ます。

っということで使ってみましょう!

getmacの導入 〜 使い方

getmacの導入はnpmを使ってコマンドライン上で行います。

# プロジェクトにインストールする場合
npm install getmac --save

# グローバルにインストールする場合 * cliとして使うことが出来ます
npm install getmac -g


getmacの機能はとてもシンプルで、MACアドレスを取得するのみです。

const address = require('getmac');

// networksetup -listallhardwareports
address.getMac((err, macAddress) => {
    
    // エラー時の処理
    if (err) {
      throw err;
    }
    
    // 第二引数にMACアドレスが返ってきます
    console.log(macAddress);

    // output例 *使っているコンピューターによって返ってくる値は変わります
    
    // Macの場合
    // eth-0のMACアドレスが返ってきます
    // 08:00:27:88:84:F9

    // Windowsの場合
    // physical addressの値が返ってきます
    // 08-00-27-D6-4D-75 *Windowsの場合は少しフォーマットが違います

    // Linuxの場合
    // eth-0の HWaddrの値が返ってきます
    // 08:00:27:4D:6D:04

    // コンピューターのネットワーク機器のMACアドレスが正しいものか判別する場合
    if (address.isMac("08:00:27:88:84:F9")) {
         console.log('有効なMACアドレスです')
       } else {
         console.log('無効なMACアドレスです')
      }

});


globalインストールしているとgetmac-nodeコマンドが使えるようになります。

# cliで使う場合
$ getmac-node
null '08:00:27:88:84:F9'


Summary

以上がgetmacの紹介でした。

クライアントサイドでMACアドレスを取得・利用する場面は少ないですが、サーバー同士の通信時に指定MACアドレスのみを許可したい場面に使えそうです。

また、Electronを使って 社内システムの様なお堅いGUIアプリを開発する時に MACアドレスを認証keyの1つとして使うと許可端末を指定することも出来たりします。

セキュリティ制が特に欲しい場面に利用すると使い方が広がりそうですね!

GIthub: bevry/getmac

 

この記事のカテゴリ

プログラミング

この記事のタグ

nodejs

Socialシェアボタン

スポンサーリンク