bugery の回答履歴
- Javaでping
Javaプログラムで、ネットワーク上に同じIPアドレスが 存在していないかを確認したいとおもっています。 JavaではICMPレベルについてサポートしていないとのことで、 ネイティブのコマンドを利用しようと思い、以下のようにソースを書いてみました。 try { // xxx.xxx.xxx.xxxはあるかどうか調べたいIPアドレス Process proc = Runtime.getRuntime().exec("ping xxx.xxx.xxx.xxx"); proc.waitFor(); int value = proc.exitValue(); if(value == 0) { //正常 } else { //異常終了 } } cache(Exception e){} IPアドレスが存在するときはproc.exitValue()の戻り値が0で、 存在しないときには0以外かと思ったのですが、 どうやらIPアドレスが存在はしていても、pingコマンドが正常に終了さえすれば 0が返ってきてしまうようです。 そこで戻りを一行ずつ読みこんで解析しようかとおもったのですが…、 どの文字が含まれていればネットワーク上に IPアドレスxxx.xxx.xxx.xxxが含まれているかを判断できるのかがわかりません。 どのWindows上でも、IPアドレスの存在を確かめるには、どうしたらよいのでしょうか? JavaというよりはWindows?の問題?かとおもったのですが、 Windows上でDOSから実行する分には、 人間が目視して確かめればいいだけだとおもうので、 プログラムが使用する場合にもつかえるpingコマンドを知りたいのです。 よろしくおねがいします。 使用JVM SDK1.3.1_02 使用OS Windows95,Windows98,Windows2000,WindowsMeすべてで共通に動かしたい