たとえば、2 セグメント ネットワークの場合: 10.20.xx および 192.168.xx (255.255.255.0)。
C# を使用して、SNMP v1、v2、v3 をサポートするすべてのデバイスのIP アドレスを見つけるにはどうすればよいですか?
Sharpsnmplibディスカバリ サンプルを使用しようとしましたが、コンピュータが接続されているセグメントのデバイスしか検出できません。
スイッチを照会してみてください (可能であれば) - ネットワーク トポロジを知っていますか? 大量の ping を送信して問題を解決できますか (一部のデバイスが応答しなくても大丈夫ですか)。
ブロードキャスト管理ルーターがないと、ブロードキャストはできません。IP ルーティング システムは、ブロードキャストが他のネットワーク サブネットに移動するのを防ぐように設計されています。ブロードキャスト形式で相互に通信するには、手動でネットワークをセットアップする必要があります ( http://en.wikipedia.org/wiki/Broadcast_addressを参照) 。
この制限が存在し、克服されている例として、BACnet/IP プロトコルがあります。BACnet は、「Who-Is」ブロードキャスト リクエストを使用して、接続されたデバイスに「I-Am」応答を送信するよう要請します。ブロードキャストはサブネットを横断できないため、BACnet は BBMD (BACnet Broadcast Management Device) と呼ばれる特別なルーターを使用します。詳細については、このリンクを参照してください。
一般的に使用される 2 つのアプローチがあります。
最初のアプローチは、ネットワーク範囲が大きく、ホストの数が少ない場合、はるかに遅くなります。2 番目のアプローチでは、ゲートウェイと通信しないホストを見逃す可能性があります。
ブロードキャストを転送するルーターがない限り、ブロードキャストは 1 つのセグメントに対してのみ機能します。