私はip範囲をスキャンし、ipがルータのアドレスかどうかを検出するプログラムを書こうとしています。ルータの検出方法は?
現在、私は自分のコンピュータからネットワーク内のすべてのホストにtracerouteを使用しました。しかし、私はそれがルータであるかどうか、直接ipにホストに "尋ねる"ための何らかの方法がなければならないと思いますか?
ところで、どのプログラム/ opensourceが既にこれをしているのですか?
私はip範囲をスキャンし、ipがルータのアドレスかどうかを検出するプログラムを書こうとしています。ルータの検出方法は?
現在、私は自分のコンピュータからネットワーク内のすべてのホストにtracerouteを使用しました。しかし、私はそれがルータであるかどうか、直接ipにホストに "尋ねる"ための何らかの方法がなければならないと思いますか?
ところで、どのプログラム/ opensourceが既にこれをしているのですか?
ルーターは、通常のIPノードにはないプロトコル(実際には素敵な束)を話すことになっていて、より一般的なものがいくつかありますすなわち、非ルータノードでさえも)。
ルータ専用プロトコル:
あなたが行うことができ、アクティブプロービングたもので、すなわちパケット(あなたが別のルータ、エンドノードのように動作する)を送信し、t oルータが(もしあれば)どんな種類の応答を送るかを見てください。
「スニッフィング」などのパッシブプロービングを行うこともできます。つまり、さまざまなノードから送信されるIPパケットの種類を監視することができます。通常はルータによってのみ送信されるものがあります(やはり、主に上記のリストから)。
共通のプロトコルが、それは実際にあなたに多くのことを伝えることができます:
その他の方法:
あなたは何をしたいのか「ネットワーク管理のソフトウェアの多くは他のノードのネットワーク内の機能/機能性を「発見」するために、何が多いです。そして、すべてのソリューションに適合する単一のサイズはありません。彼らは、さまざまな方法のヒューリスティックを使用して、最終的に他のノードが何であるか把握します。
エンドポイントだけでなく、ホップされているノードはすべてルーターです。ただし、到達可能なデバイスが接続されていないルータを検出することはできません。
直接質問する方法はありません。 ripやospfやbgpトラフィックのようなものがあるかもしれませんが、試行以外は何も答えません。 – Flexo
ルータには他と同じようにipがあります。パケットの宛先が「ローカル」でない場合は、パケットを取り出して別の場所に送信するだけです。それがルータであるかどうかだけではIPからはわかりません。 –