As an assignment I have to find all the alive computers on a LAN. For which I am using isReachable
function of InetAddress
class. But problem is that nothing is shown reachable to me. So I tried to have isReachable
with Google's IP but still this is unreachable.
Here is the code:
import java.net.*;
public class alive{
public static void main(String args[]){
try{
InetAddress ia = InetAddress.getByAddress(new byte[]{(byte)209, (byte)85, (byte)153, (byte)104});
boolean b = ia.isReachable(10000);
if(b){
System.out.println("Reachable");
}
else{
System.out.println("Unrachable");
}
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
}
}
Output is : Unreachable
Here are some details on why isReachable() might not always work as expected
The correct way for you is to use the ICMP protocol. This is what ping uses internatlly, I believe. Here is an example that get you started.