MAC アドレス検索

MAC アドレスからベンダーを特定し、コロン・ハイフン・Cisco 表記を相互変換し、ユニバーサル/ローカルビットとマルチキャストビットを解読します。すべてブラウザ内で動作します。

MAC アドレスの背後にあるベンダーを特定し、アドレス自体が語っている情報を読み解きます。 どの表記でもそのまま入力できます。会社名を入力してレジストリを逆引きすることも可能です。

コロン、ハイフン、ドット、区切りなし 16 進のいずれにも対応します。ベンダー検索には少なくとも先頭 3 バイトが必要です。

MAC アドレスが実際に符号化しているもの

6 バイトを真ん中で二分する

MAC アドレスは 48 ビットで、6 バイトとして表記されます。先頭 3 バイトは組織固有識別子(OUI)で、IEEE が製造者に販売するブロックです。後半 3 バイトはその製造者が割り当て、自社が作る各インターフェースを一意にします。ベンダー検索の根拠はこの分割にあります。特定しているのは機器ではなく、「その番号帯を購入したのは誰か」です。

ここから見落とされがちな帰結が生まれます。判明するベンダーはネットワークチップセットの製造者であり、必ずしも筐体にロゴを載せた企業ではありません。ノート PC ではしばしば無線チップのメーカーが表示され、仮想マシンでは仮想化レイヤーがアドレスを生成するためハイパーバイザーが表示されます。

表記は純粋に見た目の問題です。コロン区切りのバイト対、ハイフン区切りのバイト対、Cisco の 4 桁 3 組、区切りなし 16 進は、いずれも同じ 48 ビットを表します。ベンダーや OS が表示方法で足並みを揃えていないため、表記変換が頻出の雑務になっています。

意味を変える 2 つのビット

先頭バイトの下から 2 番目のビットが、ユニバーサル/ローカルのフラグです。0 なら IEEE 割り当てブロック由来であり、ベンダー検索に意味があります。1 ならローカルで決めたアドレスで、どのレジストリにも収録されません。見つからないのは想定どおりの結果であり、データの欠落ではありません。

このビットこそ、最近のスマートフォンやノート PC で「ベンダー不明」になる理由です。ランダム MAC アドレスは現在 Wi-Fi スキャンでは既定、接続時にも多く使われ、製造者まで遡られたりネットワークをまたいで紐付けられたりしないよう、意図的にローカルビットを立てます。ローカル管理アドレスを見たら、プライバシー目的のランダム化が最有力の説明です。

先頭バイトの最下位ビットはユニキャスト/マルチキャストのフラグです。0 なら単一のインターフェース宛、1 ならグループ宛を意味します。48 ビットすべてが 1 のブロードキャストアドレスは、その極端な例にすぎません。機器のアドレスのつもりでマルチキャストビットが立っていたら、ハードウェアではなくプロトコル用アドレスを見ている可能性が高いでしょう。

MAC から IPv6 へ、そしてなぜ廃れたか

ここに表示される修正 EUI-64 は、かつてハードウェアから IPv6 アドレスを組み立てていた方式です。MAC の中央に FF と FE を挿入し、ユニバーサル/ローカルビットを反転させて 64 ビットのインターフェース識別子を作り、ネットワークプレフィックスに連結します。

正しく動作し、完全に決定的です。そしてそれこそが問題でした。この方式で作られたアドレスは、接続するあらゆるネットワークにハードウェア由来の同一性を持ち込み、場所をまたいだ通信の相関を可能にします。RFC 8981 のプライバシー拡張と RFC 7217 の安定かつ不透明な識別子がこの慣行を置き換え、現代のシステムは既定で MAC からアドレスを導出しません。

それでもこの変換を理解する価値はあります。fe80:: のリンクローカルアドレスが読めるようになるのはまさにこの知識のおかげです。インターフェース識別子の中央に FF FE のパターンが見えれば、MAC から導出されたと一目で分かり、元のハードウェアアドレスを復元できます。

自社実装です。ベンダー名は公開されている IEEE MA-L レジストリに基づき、静的ファイルとしてブラウザが一度だけダウンロードします。検索はローカルで実行され、アドレスがどこかへ送信されることはありません。

よくある質問

購入したブランドではなくチップメーカーが表示されるのはなぜですか。
OUI はネットワークインターフェースを製造した企業のものであり、完成品を組み立てた企業のものではありません。少数のメーカーの無線チップセットが多数のブランドの機器に搭載されます。
スマートフォンの MAC アドレスがレジストリにないのはなぜですか。
最近のスマートフォンはプライバシーのため Wi-Fi アドレスをランダム化します。ランダムアドレスはローカル管理ビットが立ち、登録されることはないため、どの検索でも解決できません。
各表記の違いは何ですか。
区切り文字だけです。コロン区切り、ハイフン区切り、Cisco のドット区切り、区切りなし 16 進はいずれも同じ 48 ビットを表します。
アドレスのマルチキャストビットは何を意味しますか。
そのフレームが単一ではなくインターフェースのグループ宛であることを示します。機器のアドレスのつもりなら、プロトコル用アドレスやブロードキャストアドレスの可能性が高いです。
MAC アドレスから特定の機器を識別できますか。
できません。分かるのは番号帯を保有するベンダーだけで、機種・所有者・所在は分かりません。ランダム化により、時間的に安定しているとも限りません。
検索時に MAC アドレスはどこかへ送信されますか。
送信されません。レジストリファイルは一度だけブラウザにダウンロードされ、検索はすべてローカルで実行されます。入力したアドレスが送信されることはありません。