ネットワークの情報を取得する(2)


ネットワーク情報を取得する方法を「ネットワークの情報を取得する(1)」で紹介しましたが今回はネットワークの機器情報を取得する方法をご紹介します。

今回はネットワーク機器の情報を取得するNetworkInterfaceInfoクラスNetworkInterfaceInfoListクラスをサンプルコードを用いて紹介します。

NetworkInterfaceInfoクラスとNetworkInterfaceInfoListクラ スを使用することで下記の情報を得ることができます。

  • インターフェイスの速度の取得
  • インターフェイスの特性の取得
  • インターフェイスの説明の取得
  • インターフェイスの名前の取得
  • インターフェイスの接続状態の取得
  • インターフェイスの種類に関する追加情報の取得
  • インターフェイスの種類の取得

詳しい内容は続きを御覧ください。

ネットワークインタフェースの情報を取得する

ネットワーク機器情報はデバイスが複数の機器を持っている場合があるため複数の機器情報をまとめて取得します。
その複数の機器情報を管理しているのがNetworkInterfaceInfoListクラスになります。
NetworkInterfaceInfoListクラスはC#のIEnumerableインタフェースを実装されており要素の1つ取り出すことでネットワーク機器の情報を取得することができます。

NetworkInterfaceInfoListクラスから得られる要素がNetworkInterfaceInfoクラスになっておりプロパティに情報が格納されています。
NetworkInterfaceInfoクラスのプロパティは下表のようになります。
[table “203” not found /]

今回は実際にネットワークインタフェース情報のリストを取得し、ListBoxに表示するサンプルを用意しました。
■MainPage.xaml

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ListBox Height="595" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" />
</Grid>

■MainPage.xaml.cs

        public MainPage()
        {
            InitializeComponent();
            int num = 0;

            foreach (NetworkInterfaceInfo info in new NetworkInterfaceList())
            {
                listBox1.Items.Add(" インターフェース番号: " + num);

                listBox1.Items.Add("名前: " + info.InterfaceName);
                listBox1.Items.Add("速度: " + info.Bandwidth);
                listBox1.Items.Add("状態: " + info.InterfaceState);
                listBox1.Items.Add("種類: " + info.InterfaceType);
                listBox1.Items.Add("種類についての追加情報: " + info.InterfaceSubtype);
                listBox1.Items.Add("特性: " + info.Characteristics);
                listBox1.Items.Add("説明: " + info.Description);
                listBox1.Items.Add("");
                num++;
            }
        }

このサンプルコードをシミュレータで動かした時の画面は下図のようになります。