
弊社の (元! :-) ネットワーク マネージャーの記録管理がずさんなせいで、会社内に QNAP および Synology NAS デバイスが何台あるのかを調べる任務を負っています。弊社には英国中に数百のオフィスがあり、それらはすべて別々のネットワークとドメインです。それらはすべて Windows ベースです (Server 2k3、2008、2012 の混合)。弊社では、リモートで必要なソフトウェアを実行できる、独自の自家製監視ソフトウェアを実行しています。
QNAP と Synologies にはそれぞれ異なる MAC アドレスがあるため、ネットワークをスキャンして MAC アドレスを検索し、その出力をファイルにパイプすれば、必要な情報を簡単に取得できます。問題は、LAN 上のすべての MAC アドレスのリストを取得する方法です。
最初のステップはとにかく走ることだarp -a、とにかくこれを実行するつもりです。ただし、これはサーバーがARPキャッシュタイムアウト内に認識したデバイスのみを表示します。誰か簡単な方法を知っていますか?全てデバイスですか? 簡単というのは、Windows に組み込まれているものという意味です。何百もの異なるオフィスについて話しているので、ソフトウェアをインストールする必要がない方がよいと思います。このような場合には nmap が言及されることが多いのですが、Windows ポートでは追加のライブラリをインストールする必要があるようです。外部スキャナーを使用する必要がある場合は、サーバーにコピーして実行できる実行可能ファイルがあると便利です。
追伸:簡単に説明します:
スキャナーはコマンド ライン アプリである必要があります。リモートで起動して、出力をファイルに出力し、後で解析できるようにする必要があります。すべてのサーバーに Java がインストールされている保証はないため、Java に依存できません。すべてのサーバーに少なくとも .Net 2.0 がインストールされていることはほぼ確実です。いざというときには、ネットワーク上のすべてのアドレスに ping を実行し、応答に関連付けられた MAC アドレスを取得する簡単な .Net 2.0 アプリを作成することもできます...
答え1
最も速くて簡単な方法は、一般的に、スイッチから ARP テーブルを取得し (管理されたスイッチを使用している場合、そうでない場合は大変な苦労を覚悟してください)、探しているネットワーク カードの製造元に割り当てられた MAC アドレスに基づいてフィルタリングすることです。 私はこのサイトをよく使いますMAC をベンダーにリンクしたり、その逆を行ったりする場合もありますが、他にも方法は確かにあります。
スイッチが管理されていないため、中央の場所から ARP テーブルを簡単に取得できない場合、次善の策は、ブロードキャストできるすべてのネットワーク セグメントでマシンを見つけて、ローカル ARP テーブルを検索することです。これは、理想的とは言えませんが、多くの悪い選択肢の中では最善の解決策です。質問で提案されているように、これらすべてのマシンに対話型ログオンするのではなく、リモートコマンドラインを取得する方法を使用しますワークステーションなどの中央の場所から実行します。WinRM、PowerShell リモート処理、さらには PSexec はすべて、この目標を達成するための比較的簡単なオプションですが、環境の設定方法によっては、適切かどうかがわかりません。
ああ、付け加えておきますが、すべてのアドレスにpingしたり、そのためのアプリを書いたりするよりも、各サブネットのブロードキャストアドレスまたはグローバルブロードキャストアドレス最終的にこのルートを通る場合、 となります。(ブロードキャスト アドレスは.255
最後のオクテットに が含まれるアドレスであり、グローバル ブロードキャスト アドレスは です255.255.255.255
。)
答え2
試しましたかAngry IP Scanner
?
単一の実行可能ファイルだったと記憶しています。
以前、Linux で Fing を使用したことがありますが、これはコマンド ラインで実行してコマンド ラインに出力できます。
答え3
マウントされたボリュームを予測どおりに見つけることができれば、IP アドレスを識別し、それが誤ったデバイスの 1 つであるかどうかを追跡できます。net use
ローカルでコマンドを実行するか、レジストリ内の永続的にマップされたドライブを確認する必要があります。
次に、名前自体を調べて情報を取得するか、サーバーから ping を実行すると、MAC アドレスが返されます。