2011-11-07 13 views
1

私はip範囲をスキャンし、ipがルータのアドレスかどうかを検出するプログラムを書こうとしています。ルータの検出方法は?

現在、私は自分のコンピュータからネットワーク内のすべてのホストにtracerouteを使用しました。しかし、私はそれがルータであるかどうか、直接ipにホストに "尋ねる"ための何らかの方法がなければならないと思いますか?

ところで、どのプログラム/ opensourceが既にこれをしているのですか?

+2

直接質問する方法はありません。 ripやospfやbgpトラフィックのようなものがあるかもしれませんが、試行以外は何も答えません。 – Flexo

+2

ルータには他と同じようにipがあります。パケットの宛先が「ローカル」でない場合は、パケットを取り出して別の場所に送信するだけです。それがルータであるかどうかだけではIPからはわかりません。 –

答えて

1

ルーターは、通常のIPノードにはないプロトコル(実際には素敵な束)を話すことになっていて、より一般的なものがいくつかありますすなわち、非ルータノードでさえも)。

ルータ専用プロトコル:

  • VRRP
  • IGRP/EIGRP
  • OSPF
  • BGP
  • RIP

あなたが行うことができ、アクティブプロービングたもので、すなわちパケット(あなたが別のルータ、エンドノードのように動作する)を送信し、t oルータが(もしあれば)どんな種類の応答を送るかを見てください。

「スニッフィング」などのパッシブプロービングを行うこともできます。つまり、さまざまなノードから送信されるIPパケットの種類を監視することができます。通常はルータによってのみ送信されるものがあります(やはり、主に上記のリストから)。

共通のプロトコルが、それは実際にあなたに多くのことを伝えることができます:

  • SNMP(V1/V2のようなesply保護されていない1のの、安全なセッションを確立することなく、対処しやすい)

その他の方法:

  • ポートスキャン(実際にあなたの本当の多くのことを伝えることができます)例えば、すべてのルータは、しばしば、彼らが原因securiにロックダウンされている、が、(いくつかの管理ポートを持っています、 TYの懸念)

あなたは何をしたいのか「ネットワーク管理のソフトウェアの多くは他のノードのネットワーク内の機能/機能性を「発見」するために、何が多いです。そして、すべてのソリューションに適合する単一のサイズはありません。彼らは、さまざまな方法のヒューリスティックを使用して、最終的に他のノードが何であるか把握します。

1

エンドポイントだけでなく、ホップされているノードはすべてルーターです。ただし、到達可能なデバイスが接続されていないルータを検出することはできません。