OSのネットワーク設定情報の取得
お決まりの,「できるか?できないか?」検討で必要になったので調べた,IPアドレスやネットワークインタフェース名など,ネットワーク設定情報の取得について.
やるやらないを調べるのはいいんだけど,おかげさまでここんとこ本実装がちっとも進んでない….
Win32_NetworkAdapterConfigurationからネットワーク設定情報を取得
OSのネットワーク設定情報からIPアドレスやMACアドレス,ネットワークインタフェース名などを引くことができる.
まず最初に,System.Managementを参照に追加しておく.
やりかた(VisualStudio)は,「プロジェクト」メニュー→「参照の追加」→「.NET」タブ(最初のタブ)のコンポーネント名一覧から「System.Management」を選択して「OK」
で,冒頭に
using System.Management;
を追加しとく.
サンプルコードは以下の通り.
1 | ManagementScope scope = new ManagementScope("root\\cimv2"); |
内部的にはSQL問い合わせになってる.取得できるManagementObjectのプロパティ一覧は,http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapterconfiguration.asp.
でもってこれでやるとネットワークインタフェース名のところが,
みたいな感じで,「-」以後に余計な説明が入る.
13行目で指定している,プロパティ名をDescriptionではなく,Captionに変えて
13 |
Console.WriteLine(managementObject["Caption"].ToString());//ネットワークインタフェース |
みたいな感じで,こっちでも余計なものが入る.
実際に表示するときなどはこのあたりを切り落とすしかないのかな?