Ping은 인터넷 IP로 접근하려는 Host에 Ping을 보내고 응답을 확인하여 Host에 접근 가능한지 확인하기 위한 도구입니다.
Java의 InetAddress.isReachable() 함수는 엄밀히 얘기해서 ping utility와는 다른 방식으로 동작합니다. 본 포스트에서는 isReachable의 ping 동작방식은 다루지 않습니다.
Java에서 InetAddress.isReachable() 함수를 사용해서 접근하려는 Host IP Address로 Ping을 보낼 수 있습니다.
InetAddress는 Internet Protocol Address를 표현한 객체입니다.
isReachable() 함수의 인자로 Timeout 값을 넣을 수 있고 Timeout 시간 이내에 Host가 응답하면 결과값이 true가 return되고 Host가 응답을 안하면 결과값이 false로 return 됩니다.
(단, Host에서 방화벽이나 Ping 요청에 대한 응답을 막았다면 요청이 차단될 수 있습니다)
함수
public boolean isReachable(int timeout) throws IOException
매개변수 (Parameters)
timeout - 응답 만료 시간(milliseconds)
반환값(Returns)
Host가 응답한 경우 true,
Host가 응답 안 한 경우 false
예제
InetAddress inetAddress = null;
try {
inetAddress = InetAddress.getByName("192.168.1.13");
} catch (UnknownHostException e) {
e.printStackTrace();
}
try {
if (inetAddress.isReachable(2000)) { //timeout 2초
System.out.println("Reachable"); //응답한 경우
} else {
System.out.println("Unreachable"); //응답이 안된 경우
}
} catch (IOException e) {
e.printStackTrace();
}
InetAddress.getByName()
Host의 IP Address로 InetAddress를 생성하여 반환해줍니다.
IP Address를 잘 못 넣을 경우 UnknownHostException 발생합니다.
InetAddress.isReachable()
Timeout 값을 음수로 넣을 경우 IllegalArgumentException 발생합니다.
Network Error가 발생할 경우 IOException이 발생합니다.
'Java' 카테고리의 다른 글
[Java] byte array to String, String to byte array (0) | 2021.09.03 |
---|---|
com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 해결하기 (0) | 2021.09.02 |
[Java] InputStream을 byte 배열(byte[])로 변환 (0) | 2021.09.02 |
[Java] Float, Double 크기 비교(compare) (0) | 2021.08.29 |
[Java] String startsWith(), EndsWith() 구현 예제 (0) | 2020.07.20 |
[Java] JSONArray에서 JSONObject 값 얻어오기 (0) | 2020.07.12 |
[Java] java.lang.ArrayIndexOutOfBoundsException (0) | 2020.06.13 |
Java String을 int로 변환, int를 String으로 변환 - String to int, int to String (0) | 2020.05.27 |