質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

Network+

Network+とは、IT業界団体CompTIA認定のネットワーク技術に関する知識を証明する資格です。ネットワーク技術者として、実務で必要なネットワークセキュリティ・ネットワークアーキテクチャなどの知識を取得している証明となります。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

Q&A

解決済

1回答

5933閲覧

仮想イーサネット(仮想nic)の判定方法

KenichiKajiwara

総合スコア30

VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

Network+

Network+とは、IT業界団体CompTIA認定のネットワーク技術に関する知識を証明する資格です。ネットワーク技術者として、実務で必要なネットワークセキュリティ・ネットワークアーキテクチャなどの知識を取得している証明となります。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

0グッド

1クリップ

投稿2017/12/08 04:29

###前提・実現したいこと
現在、windowsに登録されているネットワークアダプターの一覧を
表示するアプリを作成しています。(Visual studio2015 C#)

仕様として、以下の分類で表示を行います。
・物理イーサネット
・仮想イーサネット(VPNやVMなど)
・無線

現在、イーサネットと無線の判定は
アダプタータイプで判定することはできますが
物理イーサネットと仮想イーサネットの判定がどのように行えるかわからず
実現できていません。

物理イーサネットと仮想イーサネットを判定(区別)する方法はありますでしょうか?

開発環境はWindows8/10、visual studio2015 C#にて
行っております。

###試したこと
・NetworkInterfaceクラスで、仮想nicと物理nicのプロパティ値など確認
・WMIによる仮想イーサネットと物理イーサネットの確認

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私は詳しくないのですが、他の方からの回答が無いみたいなので情報提供を。

>・WMIによる仮想イーサネットと物理イーサネットの確認
というのは、
https://msdn.microsoft.com/en-us/library/aa394216%28VS.85%29.aspx
で言うところのPhysicalAdapterがTrueかFalseか、のことでしょうか。
そのすぐ下に、PNPDeviceIDという項目があります。
こちらの環境でPowerShellから
Get-WmiObject -class win32_networkadapter -filter "PhysicalAdapter = true" | format-list -Property pnp*

Get-WmiObject -class win32_networkadapter -filter "PhysicalAdapter = false" | format-list -Property pnp*
を入力してみると、PNPDeviceIDは
・PCI で始まって、VEN_ や DEV_ を含む
・USB で始まって、VEN_ や DEV_ を含む
・ROOT で始まって、VEN_ や DEV_ を含まない
・SW で始まって、VEN_ や DEV_ を含まない
・何も無い
の5とおりに分かれます。

この辺で区別できそうな気もしますが、どうでしょうか?

(プラグアンドプレイではない、大昔の物理デバイスでどうなるかは不明ですが。)

投稿2017/12/09 05:49

okrt

総合スコア366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KenichiKajiwara

2017/12/10 13:22

okrt様 ご回答、ありがとうございます!! PhysicalAdapter に関しまして (理由はわかりませんが)物理イーサネット及び仮想イーサネットは Trueになっておりました。 ※そのため、どう判断してよいかいきずまっていました。。。 ただ、PNPDeviceIDには着目していなかったため こちらのヒントを元に調査したいと思います! 進展がありましたら、ご報告いたします。
KenichiKajiwara

2017/12/11 01:29

ありがとうございます 検証してみたところ > Get-WmiObject -class win32_networkadapter -filter "PhysicalAdapter = false" | format-list -Property pnp* > を入力してみると、PNPDeviceIDは > ・PCI で始まって、VEN_ や DEV_ を含む > ・USB で始まって、VEN_ や DEV_ を含む > ・ROOT で始まって、VEN_ や DEV_ を含まない > ・SW で始まって、VEN_ や DEV_ を含まない > ・何も無い で判断することができました。 ご回答、誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問