2012-10-31 1 views
2

내 응용 프로그램을 통해 traceroute 명령을 실행하고 싶습니다.
어떻게하면됩니까?
응용 프로그램을 통해 traceroute 명령을 실행하는 방법은 무엇입니까?

Runtime.getRuntime().exec("traceroute google.com") 


java.io.IOException : exec()를 실행하는 중 오류가 발생했습니다. 명령 : [traceroute, -4, google.com] 작업 디렉토리 : null 환경 : null 11-02 12 : 51 : 38.399 : E/trace (1604) : java.lang.ProcessManager.exec (ProcessManager.java:224))

NDK 또는 다른 방법을 사용하는 것과 같은 다른 방법이 있습니까?
도와주세요.

답변

1

Android에서는 traceroute 명령을 사용할 수 없습니다.

busybox가 설치된 루팅 된 장치에서이 장치를 사용하려면 busybox 설치 경로를 사용하여 명령을 실행하십시오. 티어 라이브러리는 루팅 된 기기에서 사용하려는 경우 유용 할 수 있습니다. http://code.google.com/p/roottools/

+2

Google에서 ping, DNS, Traceroute 확인 포트, HTTP 헤더와 같은 action을 수행하는 애플리케이션을 재생합니다. 코드 작성 방법은 해당 애플리케이션이 rooted 장치없이 traceroute 명령을 실행합니다. – Raga

2

당신이 할 수있는 또 다른 일은 간단한 ping 명령을 사용하여 자신의 traceroute를 만드는 것입니다. Traceroute는 기본적으로 수정 된 TTL 필드가있는 핑을 발송합니다. IP 패킷이 도달 한 TTL 한계 (대상 서버 이전)에 도달하면 서버에서 응답이 전송됩니다. 이러한 응답은 traceroutes가 패킷이 대상에 어떻게 도달 하는지를 찾을 수있는 방법입니다.

+1

응답은 ICMP 연결할 수없는 메시지입니다. 신청서에이 메시지를 어떻게 받습니까? –

관련 문제