Ich möchte ein Java-Programm schreiben, in dem, wenn ich die Ziel-IP-Adresse gebe, ich die Informationen über den nächsten Hub erhalten werde, um diese IP zu erreichen.Wie bekomme ich den nächsten Hub?
Wie kann ich das erreichen?
Dank
Bapi
Ich möchte ein Java-Programm schreiben, in dem, wenn ich die Ziel-IP-Adresse gebe, ich die Informationen über den nächsten Hub erhalten werde, um diese IP zu erreichen.Wie bekomme ich den nächsten Hub?
Wie kann ich das erreichen?
Dank
Bapi
Java-Programm ??? Sie haben tracert
...
Außerdem sollten Sie erklären, was genau Sie mit "Hub" meinen.
Die gebräuchlichste Methode zur Topologieerkennung in IP-Netzwerken besteht darin, Pakete (z. B. ICPM ECHO REQUEST
) an Zieladressen mit sehr kleinen TTL Werten zu senden. Normalerweise antwortet der letzte gültige Knoten, den Sie mit einer bestimmten DLL erreichen, mit einer ICMP-Fehlermeldung, die Ihnen mitteilt, dass das Paket aufgrund seines Lebensendes verloren gegangen ist, wodurch die IP-Adresse des Geräts angezeigt wird.
This question's Antwort schlägt vor, dass die Java-Socket-API die TTL nur auf Multicast-Sockets festlegen kann. Um dies zu umgehen, könnten Sie versuchen, mit rohen IP-Sockets zu arbeiten, indem Sie eine Drittanbieter-Bibliothek wie RockSaw verwenden, da im JDK keine rohe IP-Unterstützung existiert (die bug on SUN's tracker von 2002 (!) Verlangt, dass sie geschlossen wurde. "Wird nicht behoben ").
Ich denke, Sie meinen nächsten Hop statt "Hub".
Für den Host kann der nächste Host aus der Routentabelle des Host geprüft werden, mit trace kann es wie folgt Stackoverflow Thread implementiert werden:
Der Fehler, den Sie verweisen, sagt der Anfrage aufgeteilt wurde in zwei verschiedene RFEs. Bitte lesen Sie den Abschnitt "Evaluation" –
Einer von denen ist "4727550 verfolgt die Voraussetzung für die vollständige RAW-Socket-Unterstützung", der Fehler, mit dem ich verlinkt und der andere ist "4639861 verfolgt die Anforderung, Erreichbarkeit eines Hosts zu testen", die behoben wurde , ist aber für die Frage irrelevant. –