1

たとえば、2 セグメント ネットワークの場合: 10.20.xx および 192.168.xx (255.255.255.0)。

C# を使用して、SNMP v1、v2、v3 をサポートするすべてのデバイスのIP アドレスを見つけるにはどうすればよいですか?

Sharpsnmplibディスカバリ サンプルを使用しようとしましたが、コンピュータが接続されているセグメントのデバイスしか検出できません。

ここに画像の説明を入力

4

3 に答える 3

1

スイッチを照会してみてください (可能であれば) - ネットワーク トポロジを知っていますか? 大量の ping を送信して問題を解決できますか (一部のデバイスが応答しなくても大丈夫ですか)。

ブロードキャスト管理ルーターがないと、ブロードキャストはできません。IP ルーティング システムは、ブロードキャストが他のネットワーク サブネットに移動するのを防ぐように設計されています。ブロードキャスト形式で相互に通信するには、手動でネットワークをセットアップする必要があります ( http://en.wikipedia.org/wiki/Broadcast_addressを参照) 。

この制限が存在し、克服されている例として、BACnet/IP プロトコルがあります。BACnet は、「Who-Is」ブロードキャスト リクエストを使用して、接続されたデバイスに「I-Am」応答を送信するよう要請します。ブロードキャストはサブネットを横断できないため、BACnet は BBMD (BACnet Broadcast Management Device) と呼ばれる特別なルーターを使用します。詳細については、このリンクを参照してください。

于 2012-12-29T19:43:26.887 に答える
0

一般的に使用される 2 つのアプローチがあります。

  1. ユーザーが IP アドレス範囲を定義してから、その範囲内のすべてのアドレスに対して SNMP GET を実行します。
  2. ローカル マシンの arp キャッシュから開始し、SNMP を使用して ARP キャッシュで見つかったすべての IP アドレスをポーリングし、RFC-1213 MIB atTable (OID .1.3.6.1.2.1.3.1) でまだ検出されていない IP アドレスを調べます。これにより、アクティブに通信しているすべてのネットワーク ノードが検出されます。

最初のアプローチは、ネットワーク範囲が大きく、ホストの数が少ない場合、はるかに遅くなります。2 番目のアプローチでは、ゲートウェイと通信しないホストを見逃す可能性があります。

于 2013-01-15T07:15:23.190 に答える
0

ブロードキャストを転送するルーターがない限り、ブロードキャストは 1 つのセグメントに対してのみ機能します。

于 2012-12-29T10:09:42.697 に答える