2009-04-05 7 views
0

私は宛先IPアドレスを与えると、そのIPに到達する次のハブの情報を取得するJavaプログラムを作成したいと思います。次のハブを取得する方法

どうすればいいですか?


おかげ

BAPI

答えて

2

Javaプログラム???あなたはtracert ...

さらに、「ハブ」という意味を正確に説明する必要があります。

1

IPネットワークでのトポロジ検出の最も一般的な方法は、宛先アドレスにパケット(たとえばICPM ECHO REQUEST)を非常に小さいTTL値で送信することです。通常、指定されたDLLで最後に有効なノードに到達すると、ICMPエラーメッセージが表示され、パケットの寿命が終了してパケットが失われたことが通知され、そのデバイスのIPアドレスが明らかになります。

This question's答えは、JavaソケットAPIはマルチキャストソケット上でのみTTLを設定できることを示しています。この問題を回避するには、RockSawのようなサードパーティのライブラリを使用して、未処理のIPソケットを処理することができます.JDKにraw IPサポートがありません(bug on SUN's trackerは2002年(!) ")。

+0

あなたはを参照してくださいバグは、要求が分割されていると言います2つの異なるRFEに変換する。 「評価」セクションをお読みください –

+0

「4727550は完全なrawソケットサポートの要件を追跡しています」、リンク先のバグ、および「4639861はホストの到達可能性をテストするための要件を追跡しています」が修正されましたこの質問には関係ありません。 –

2

「ハブ」の代わりにネクストホップを意味すると思います。ホストの

、次のホストは、トレースルートと、それはstackoverflowのスレッドを次のように実装することができ、ホストのルートテーブルから確認することができます。

How can I determine the IP of my router/gateway in Java?