2013-07-19 6 views
0

InetAddress.isReachable (NetworkInterface, int ttl, int timeOut) 특정 주소에 ttl의 홉 수에 도달 할 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.InetAddress.isReachable 메서드를 사용하여 중급 홉 가져 오기

성공 또는 실패 메시지를받은 IP 주소를 알 수 있습니까? 나는 isHachable이 성공 또는 실패 resposne을 얻는 중간 홉의 IP를 가질 수 있음을 의미한다.

+0

경로가 자주 변경된다는 점에 유의하십시오. 다음에 전화를 걸 때 경로 트리를 결정했다고해도 다른 대답을 얻을 수 있습니다. 적어도 WAN에서는 어떤 대답이라도 소금물로 처리해야합니다. –

+0

그래, 알았다. 그러나 여전히 나는 고객의 성과를보고 싶었다. –

답변

0

설명서에 있습니다.

일반적인 구현은 권한을 얻을 수 있으면 ICMP ECHO REQUEST를 사용하고, 그렇지 않으면 대상 호스트의 포트 7 (Echo)에 TCP 연결을 설정하려고 시도합니다.

기본적으로 아니요. TCP/IP가 설계 되었기 때문에 정상적인 ICMP/TCP 전송을 사용하여 홉 - 바이 - 홉 도달 가능성 정보를 얻을 수있는 방법이 없으므로 그 정보를 얻을 수있는 확실한 방법이 없습니다.

"traceroute"명령은 보내는 패킷에 TTL을 설정하여 홉 단위로 준 신뢰성있는 정보를 얻을 수 있지만 isReachable은 연결 가능성을 확인하는 "빠르고 더러운"방법이며이 기술을 사용하지 않습니다.