[C#] ネットワークインタフェース一覧を得る

C#でネットワークインタフェース情報は以下のクラスのstaticcメソッドで取得する。

NetworkInterface Class
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface(v=VS.90).aspx

リンク先のサンプルコードはあるホストのネットワークインタフェース全部をリストするもの。記載されているコードだと未定義関数があるので単独ではコンパイルできない。

インタフェース全部の情報を取得するコードのパターンの骨組みは以下。

NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
       //
       IPInterfaceProperties properties = adapter.GetIPProperties();
      // いろいろ表示...
      // adapter.Description はインタフェースの説明.
      // properties.UnicastAddresses  unicastアドレスのcollection など
}

UnicastAddressesがcollectionなので、個々のアドレスを見るには foreach でUnicastAddressを取り出す。

やってみるとIPv6とIPv4が混在している。簡単なサンプルを作って上記のコードのforeachでcollectionの中身を見てみると以下のようになった。

トンネリング用のインタフェースはPv6アドレスを持っている。

広告

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。