마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 포트포워딩한 장치의 Ping 테스트하기..

0 추천
Process proc = Runtime.getRuntime().exec(cmd);          
proc.waitFor();                                         
int result = proc.exitValue();

내부망에서는 장치의 사설IP로 핑테스트가 가능하지만

외부망(망외WiFi / LTE)에서는 공인 IP와 포트포워딩된 장치의 Port를 통해 핑테스트를 진행해야할텐데요

Ping 은 IP만 입력이 가능한데 Port까지 넣어서 장치가 살아있는지 확인할 수 있는 방법이 있을까요?

 

 

 

익명사용자 님이 2017년 6월 9일 질문

1개의 답변

0 추천
 
채택된 답변

ping은 ICMP(Internet Control Messge Protocal)의 일종으로 OSI 7 레이어 중 NetWork Layer에 해당하는 명령어라

Trans port Layer에 해당하는 port 지정이 없어서 지정이 불가능합니다.

만약 port까지 검색하려면 tcping이라는 별도의 프로그램을 사용하셔야 합니다. 

단지 안드로이드 단말에 이 프로그램이 설치 안되있을 가능성이 높고 복사해 넣어 실행하려 해도 Sdcard같은데는 실행 권한이 없어 실행해 주기 어렵기 때문에,

소스를 직접 빌드해서, JNI로 tcping의 메인부분을 호출 해 주는 방식으로 구현하셔야 할 듯 합니다.

https://github.com/jtilander/tcping

익명사용자 님이 2017년 6월 12일 답변
감사합니다. tcping 말고 제가 임의로 Ping용 패킷을 만들어 보내고 응답이 제대로 이뤄질 경우로 ping테스트를 하였습니다.
제 앱에서는 이 방법이 제일 나은것같더라구요
그래도 감사합니다 :)
...