androidtraceroutejpcap

Traceroute on android


I am a beginner on android platform, and I want to build a tracerouting app. So these are my queries:

  1. Is it possible to make such an application in Android? if possible then guide me the way that I follow.

  2. Does Android support low-level programming to capture ICMP packets? or do I need to add some kind of JAR (in java) or some other libraries to support this application?

  3. In Java, there are JPCAP and docjar etc kind of libraries that we can import in our IDE or Eclipse so that Java support for making such kind of API's?

I need valuable suggestions.


Solution

  • The simplest way I can think of is to just check for the traceroute Linux application, execute it, and parse its output.

    Android has full networking support, however, Java doesn't expose an interface to alter the IP header. Hence, manually crafting ICMP packages is out of the question (JPCAP is no help here, since it relies on libpcap, which I suppose you won't find on any vanilla installation).

    Another possible solution is to use the NDK and create a small library that handles the low-level number crunching. However, I'm not sure if the NDK would allow you to use setsockopt.