ネットワーク関連のコマンドでよく使うものは何と聞かれたとすると、まっさきに頭に浮かぶのは「Ping」ではないでしょうか。さて、このPingをJAVAで実行するにはどうすればいいかというのを調べてみました。(別にJAVAでやる必要ないじゃん!という突っ込みは無しの方向で) 方法は色々あるかと思います。例えば、JNI(Java Native Interface)を使ってPingコマンドを実行するというのもその一つ。それでも良いのだけど、JAVAを使うのだからどんなプラットフォームでも使えるものにしたい。つまり完全にネィティブなJAVAオンリーで作りたいのです。 結論としてICMPのPINGそのものは使えなくても、Pingの代わりとして使えそうなクラスがありましたので、今回はそれを使う方法をご紹介します。(ちなみにこの方法はJava Platform SE 5.0 以降のバージョンでないと使えま
しかし、残念ながらJavaではICMPを扱うことができず、(Javaだけの言語機能で)自分で書くのは無理なようです・・・CやC++で書いたコードをJNI(Java Native Interface)から呼び出すことならできますが、それでは「Javaで書いた」って気がしないので、Javaで書くのはやめにしまた。 なお、JavaでPingを飛ばしたいだけなら、java.net.InetAddressのisReachable()メソッド(*2)を利用することができますので、実用上はあまり困らないと思います。 <参考にしたページ>Java/JNI/ping - discypusJavaでping - 教えて!goo[JavaHouse-Brewers:30408] Re: (結論)Java のみでPing は作成できない。(was Re:Java_Ping)Javaでping & Tomcatイン
このサンプルは Ping の動作をシミュレートするようなサンプルです。 さて、Reachability をチェックするには InetAddress#isReachable メソッドを使用します。このメソッドは引数によって 2 種類提供されています。一方が簡単なものでタイムアウトの時間だけを指定するもの。もう一方がネットワークインタフェース、TTL そしてタイムアウトを使用するものです。 通常はタイムアウトを指定するものだけで十分だと思います。 Reachability をチェックするには次のようにします。 String addressText = .... InetAddress address = InetAddress.getByName(addressText); // Reachability のチェック ICMP が使用される boolean isReachable = addr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く