どうも!リョクちゃです。
今回は、MACアドレスについて紹介するとともに、
VB.Netで自身のMACアドレスを取得する方法を例を交えて紹介していきます。
ちなみに前回は、IPアドレスについて記事を書きました。
目次
MACアドレスとは : (Media Access Control)
ネットワークにつながる機器に割り当てられる48ビットで構成された、
世界に一つしかない唯一固有の値です。
物理アドレスとも呼ばれます。
例えば、スマートフォンやパソコン、ゲーム機器(PS4や任天堂Switch,Xbox)
最近ではIoT家電にもMACアドレスが割り当てられています。
ネットワークに接続するのに必要なモノで、ないと通信などができません。
下に、MACアドレスの例を示します。
で構成され、ポリシーとして、
半角英数字0~9、A~Fで構成されます。
F以降のGやKなどは含まれません。
一般的に2桁区切りの”ハイフン”で表されます。
“ハイフン”がない場合の表記もありますが、あまり見かけないと思います。
また、2桁部分をオクテットと呼び、MACアドレスは6オクテットで構成されます。
前半の24ビットをベンダーコードと呼び、後半の24ビットをシリアルコードと呼びます。
ベンダーコードとは、主にMACアドレスが付加されている機器を
生産・販売している会社の名前が割り当てられています。
シリアルコードに関しては、ユニークなコードになります。
ベンダーコード+シリアルコードで、唯一固有の値になります。
下図でそれぞれ説明しておきます。
ざっと、簡単にMACアドレスについて解説しましたが、
次にVB.NetでMACアドレスを取得する方法を例を交えて解説します。
準備編:フォームの作成
下のようなフォームを作成します。
ちなみに筆者の環境は、
- VisualStudio2019
- Windows 10 64bit
- .Net Framework 4.5.2
です。
アプリケーションの目的
今回は、フォーム上に配置されたボタンを押すことで、
フォーム上に配置されているラベルに自身のMACアドレスを表示する
ことを目的としたアプリケーションを作成します。
MACアドレスの取得:自身の端末のMACアドレス一覧を取得
実は、自端末の環境によっては複数のMACアドレスが割り当てられている場合があります。
各ネットワークアダプタにつき、1つのMACアドレスであったり、
仮想環境を構築している場合など。
この一覧を取得するには、
を使用します。
これを使うことで全てのインターフェースのMACアドレスやその他の情報が取得できます。
※今回はMACアドレスのみについて触れます。
取得した一覧からMACアドレスを抽出するには、
下のコードで抽出します。
1 2 3 4 5 6 |
Public Class TestMac Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim nif As Net.NetworkInformation.NetworkInterface() = Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() Console.WriteLine(nif(0).GetPhysicalAddress) End Sub End Class |
ここでは0番目のインターフェースのMACアドレスを抽出しています。
全てを取得したい場合は、For Each文を使って取得するようにします。
と書くことで、MACアドレス(または、物理アドレス)を取得しています。
最後に、ラベルに表示するコードを書きます。
1 2 3 4 5 6 |
Public Class TestMac Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim nif As Net.NetworkInformation.NetworkInterface() = Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() Me.Label2.Text = nif(0).GetPhysicalAddress.ToString() End Sub End Class |
実際に実行すると、
※ MACアドレスの表示は消しています。
実際にはラベルに表示がされています。
気になる方はコードを実行してみてください。
まとめ
今回は、MACアドレスについて簡単にどんなものか解説、
取得方法について紹介していきました。
興味のある方はぜひ、一度自身のMACアドレスを調べてみてはいかがでしょうか。
ご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。