winpcap を使用した Windows 7 ネットワーク アダプターのデバイス名

winpcap を使用した Windows 7 ネットワーク アダプターのデバイス名

私は、生産ラインの複数のサーバーで使用されるアプリケーションに winpcap を使用しようとしています。今のところ、私を悩ませているのは、Windows 7 のデバイス命名規則です。これは長い 16 進文字列で、サーバーごとに異なります (つまり\Device\NPF_{6F2E340D-FD43-4505-81C2-735716D02F15}、Linux では eth0、eth1、... という規則でこれが簡単になります)。各サーバーは 5 つのネットワーク アダプターを使用するので、デバイス名を含む構成ファイルを保持したり、デバイス名の変更に対応するためにソース コードを変更したりする必要はないようにしたいと思います。さらに、cat5 フックアップは別のネットワーク上の異なるデバイスに接続され、ポートの割り当ては図面ごとに常に同じである必要があります。

そこで質問なのですが、Windows でこれらのデバイス名を管理する簡単な方法はありますか? たとえば、レジ​​ストリで簡単に名前を変更できるような方法はありますか? レジストリを調べてみると、16 進文字列が多くのエントリに表示され、フォルダー名にも表示されるので、変更が面倒になるかどうかわかりませんでした。あるいは、ネットワーク接続ページから設定できるデバイスのフレンドリ名を winpcap で取得し、その方法で 16 進デバイス名の結果を取得する方法があるでしょうか (findalldev_ex() と同様)。その他の提案も歓迎します。

PS: IP とポートにバインドするために bind() を使用したり、winsock などを使用したりできることはわかっていますが、複数のネットワーク アダプターが同じ IP アドレスを持つ必要があり、それが Windows で競合するため、アプリケーションとハードウェアの他のデバイスへのインターフェイスは複雑になります。そのため、プロミスキャス モードの winpcap オプションによってすべての生のメッセージが作成されます。

答え1

ネットワーク接続の「接続名」を取得するにはどうすればよいですか?

Windows では、getmac「接続名」(フレンドリ名) と「トランスポート名」(GUID) の両方を取得するために使用できます。

getmac /fo csv /v

出力例:

"Connection Name","Network Adapter","Physical Address","Transport Name"
"Local Area Connection","Realtek PCIe GBE Family Controller","F0-BF-97-62-95-5D","\Device\Tcpip_{45B9E87F-83FB-4829-A751-6B62656CC1A8}"
"Wireless Network Connection","Atheros AR9285 Wireless Network Adapter","CC-AF-78-B2-4C-09","\Device\Tcpip_{B108BB0B-CCDC-4ACA-9DFE-5A2F17BC138D}"
"Bluetooth Network Connection","Bluetooth Device (Personal Area Network)","CC-AF-78-B2-4C-0A","Media disconnected"

接続の名前を変更するにはどうすればよいですか?

netshネットワーク接続の名前を変更するために使用できます。

netsh interface set interface name="Local Area Connection" newname="New Name"

これらすべてを自動化するにはどうすればよいでしょうか?

製品をインストールするときに上記のコマンドをバッチ ファイルで使用すると、カスタム ローカル構成ファイルが自動的に作成されます。


参考文献

  • Windows CMD コマンドラインの AZ インデックス- Windows コマンド ラインに関連するあらゆることに関する優れたリファレンス。
  • ゲットマック- ローカルまたはネットワーク全体の各コンピューターのすべてのネットワーク カードのメディア アクセス制御 (MAC) アドレスと、各アドレスに関連付けられているネットワーク プロトコルのリストを表示します。
  • ネットシュ- ネットワーク インターフェイス、Windows ファイアウォール、ルーティング、リモート アクセスを構成します。

関連情報