Java 有没有一种可能的方法可以利用Ping功能在Android上实现traceroute?
我现在正在和我的朋友开发一个Android网络诊断应用程序(Java) 我们已经实现了Ping函数,现在希望使用Ping实现traceroute函数,这就是Windows cmd中发生的情况: 然后我尝试通过连续Ping来模拟traceroute过程: 为了解释这一点,我试图通过连续Ping相同的目标IP来模拟跟踪路由过程。每次我将ttl增加1,直到达到目标IP:,记录中间路由器的IP地址,然后打印出来 但是在Android上,我发现intermediate返回的ICMP不包含他们的IP地址信息: . Android上的Ping命令是否有问题,或者可能是ICMP格式的问题?如何获取中间网关的IP地址?是否可以在Android上使用Ping实现traceroute?如果您有任何建议,我将不胜感激 这是我们非常原始版本的“Ping”部分:Java 有没有一种可能的方法可以利用Ping功能在Android上实现traceroute?,java,android,networking,ping,traceroute,Java,Android,Networking,Ping,Traceroute,我现在正在和我的朋友开发一个Android网络诊断应用程序(Java) 我们已经实现了Ping函数,现在希望使用Ping实现traceroute函数,这就是Windows cmd中发生的情况: 然后我尝试通过连续Ping来模拟traceroute过程: 为了解释这一点,我试图通过连续Ping相同的目标IP来模拟跟踪路由过程。每次我将ttl增加1,直到达到目标IP:,记录中间路由器的IP地址,然后打印出来 但是在Android上,我发现intermediate返回的ICMP不包含他们的IP地址信
public String ping(String url) {
String str = "";
String tmp="";
try {
Process process = Runtime.getRuntime().exec(
"ping -c 1 -t 1 " + url);
BufferedReader reader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
int i;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((i = reader.read(buffer)) > 0) {
output.append(buffer, 0, i);
tmp=reader.readLine();
System.out.println(tmp);
}
reader.close();
// body.append(output.toString()+"\n");
str = output.toString();
// Log.d(TAG, str);
} catch (IOException e) {
// body.append("Error\n");
e.printStackTrace();
}
return str;
}
欢迎Momoom!请考虑把代码内嵌而不是做屏幕截图,这样我们就能更好地理解和查看它:对不起,伙计,我只能提供有限的部分。code@Momomoom试着做同样的事情,如果你找到了方法,请告诉我!非常感兴趣。我会继续找的,如果发现什么,我会回来报告。