3

デバイスの説明 (つまり、[デバイスのプロパティ] -> [接続方法] テキストボックスに表示される文字列) から、ネットワーク インターフェイス名 ([ネットワーク接続] ダイアログに表示される名前) を取得するにはどうすればよいですか?

純粋な C/C++ 言語で行うか、いくつかの標準的なコマンド ライン ツール (netsh、ipconfig など)、または両方を組み合わせて行う必要があります。

展開の問題のため、.NET API は使用できません (アプリケーションは、.NET Framework を使用せずに組み込まれた XP 上で実行する必要があります)。

SDK API の GetIfTable と GetIfEntry は有望に思えますが、私たちのシステムでは、初期化されていない「wszName」フィールドを除いて、すべての MIB_IFROW フィールドが正しく入力されています。

4

3 に答える 3

1

レジストリを介してこれを行うことができました。IP_ADAPTER_INFO 出力を提供する GetAdaptersInfo() を使用して、AdapterName 文字列を取得します。これは、アダプターの GUID である必要があります。(少なくとも ipv4) の場合、HKLM\SYSTEM\CurrentControlSet\Control\Network{4D36E972-E325-11CE-BFC1-08002BE10318}\{ INSERT GUID HERE }\Connection の下で、値Nameには「わかりやすい」ネットワーク名が含まれている必要があります。

于 2009-10-07T00:04:55.600 に答える
0

再確認する必要がありますが、これはレジストリのどこかにある可能性があると思います...これに戻ります。

hklm / system / currentcontrolset / control / network

役立つかもしれません。

思った通りに見つからなかったけど、ごめんなさい

編集これも役立つかもしれません:

http://www.java2s.com/Tutorial/CSharp/0520__Windows/Getthenetworkdevicenamedeviceservicename.htm

具体的には、HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards \

これが将来保証されているのか、「承認された」方法ではないのかはわかりませんが、必要な情報が含まれているようです。

于 2008-12-19T15:27:52.570 に答える
0

最善の策は、まとめて「IP Helper」として知られる Win32 API 呼び出しを使用することです。これにより、CLI から「ipconfig」を呼び出して取得できる情報とほぼ同じ情報が得られます。

特に、「GetAdaptersInfo」関数を調べることから始めます。

もちろん、Win32 API のこの部分から、外部ユーティリティからの出力を解析する必要なく、純粋な C/C++ を使用できます。

于 2008-12-22T20:32:41.440 に答える