ホストに到達しようとしていて、次のコードがあります
if(!InetAddress.getByName(host).isReachable(TIMEOUT)){
throw new Exception("Host does not exist::"+ hostname);
}
ホスト名は Windows から ping でき、また tracert を実行すると、すべてのパケットが返されます。しかし、Java は「ホストが存在しません::」という例外をスローします。
私が実験したタイムアウト値は、2000ms から 5000ms までです。私も3000にしてみました。私が理解できないこの問題の原因は何ですか。ネットで調べたところ、 InetAddress.getByName(host).isReachable(time) は信頼性がなく、内部システムに従って動作するという人もいます。
これが本当なら、これに代わる最良の方法は何ですか。提案してください。