Frage
Ich bin ein Anfänger auf Android-Plattform, und ich möchte eine tracerouting App bauen. Das sind also einige meiner Abfragen, möchte ich fragen:
-
Ist es möglich, eine solche Anwendung in Android zu machen? wenn möglich, leite mich dann auf die Art und Weise, dass ich folgen.
-
Does Android Unterstützung niedriges Niveau Programmierung ICMP-Pakete zu erfassen? oder brauche ich eine Art von JAR (Java) oder einigen anderen Bibliotheken hinzufügen, diese Anwendung zu unterstützen.
-
In Java gibt es JPCAP und docjar etc Art von Bibliotheken, die in unserer IDE oder Eclipse, so dass Java-Unterstützung für die Herstellung dieser Art von api importieren können?
brauche ich wertvolle Anregungen.
Lösung
Der einfachste Weg, die ich denken kann ist, einfach zu überprüfen für die traceroute
Linux-Anwendung, führen Sie es aus, und analysieren seine Ausgabe.
Android volle Netzwerkunterstützung hat jedoch Java verfügbar macht keine Schnittstelle die IP-Header zu ändern. Daher ICMP-Pakete manuell Crafting der Frage ist aus (JPCAP keine Hilfe da ist, da es auf libpcap beruht, die ich Ihnen nicht auf einer Vanille-Installation finden annehmen wird).
Eine weiterer möglich Lösung ist, die NDK zu verwenden und eine kleine Bibliothek, dass Griffe der Low-Level-Zahl Knirschen erstellen. Allerdings bin ich mir nicht sicher, ob das NDK Sie Gebrauch setsockopt
erlauben würde.
Andere Tipps
Es ist ziemlich spät - aber jemand könnte es sehen. Ich fand dieses und es funktionierte für mich: https://github.com/olivierg13/TraceroutePing