• 締切済み

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すべてで共通に動かしたい

みんなの回答

  • bugery
  • ベストアンサー率0% (0/0)
回答No.2

最近,javaからpingを投げることに頭を抱えてます. この質問ってもう完了してしまったのでしょうか. もし,情報ありましたらお願いいたします. ちなみに僕の場合は Process proc = Runtime.getRuntime().exec("ping xxx.xxx.xxx.xxx"); proc.waitFor(); ←ここで応答が来ません Process proc = Runtime.getRuntime().exec("ping xxx.xxx.xxx.xxx > ping.log"); の場合は「Bad Parameter」とのメッセージが戻ってきています. BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream())); br.readLine(); で戻ってきた内容を見ています. よろしくお願いします

全文を見る
すると、全ての回答が全文表示されます。
  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

PINGで応答がある場合。 C:\>ping 127.0.0.1 Pinging 127.0.0.1 with 32 bytes of data: Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\> 応答がない場合。 C:\>ping 1.1.1.1 Pinging 1.1.1.1 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 1.1.1.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), となります。 Runtime.getRuntime().exec("ping xxx.xxx.xxx.xxx > /tmp/ping.log"); 等と記述して、ファイルの内容を見てはいかがですか。 Request timed uot.がpingで応答のなかった場合です。

mojira
質問者

補足

ありがとうございます。 お返事が遅れてごめんなさい。 えっと…。Request timed out.は Windowsシステムすべてで共通といいきっていのでしょうか? 結果によって次の処理に自動的にふりわけたいのですが、 Request timed uot をキーワードにすると、 ping 255.255.255.255とかのときには適応できないですよね…

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • pingが通らない

    コマンドラインであるサーバーのIPアドレスを指定して ping xxx.xxx.xxx.xxx と実行すると「要求がタイムアウトしました。」と出ます。 しかし、mysqlのコマンドで mysql -u root -h xxx.xxx.xxx.xxx -p とコマンドを打つとmysqlにログインすることができます。 pingでは応答がないIPアドレスなのにmysqlコマンドでIPを指定してログインできると いうのはどういうことなのでしょうか。

  • pingコマンド

    初歩的な質問で恐縮です。 mac osxを使用しています。 ネットワークの状態を調べたいので 他のPCにpingを打ちたいのですが pingコマンドの使用方法を教えて頂けませんか? ping xxx,xxx,xxx,xxxで良いのでしょうか?

  • pingが通りません。

    以下のサイトで無償なドメインを取得しました。 https://www.noip.com/ コマンドプロンプトを起動してpingで取得したドメイン名とIPアドレスを 実行したんですが、「要求がタイムアウトしました。」を出力されました。 ping xxx.xxx.xxx.xxx ping xxxxx.ddns.net なんでpingが通らないのかがわかりません。 申し訳ありませんが皆さんの知恵を貸して下さい。 宜しくお願いします。

  • ping コマンドで、IPアドレスならばpingは返ってきますが、wwwのアドレスだと返ってきません。

    ping コマンドで、IPアドレスならばpingは返ってきますが、wwwのアドレスだと返ってきません。 Windowsのコマンドプロンプトだと返ってくるのですが。 お願いいたします。

  • ping, ipconfigコマンドについてお尋ねします。

    現在有線LANでネットワークが組んであります。ネットワーク上の 機器の一部の機能が正常に動作しないためネットワークをしらべています。OSはXPです ipconfig /allでデフォルトゲートウェイと表示されたipアドレス(ルーター buffelo WHR-G54S)にpingコマンドを実行しても応答がありません。タイムアウトになります。(不確かですが以前は出来ていた記憶があります)ルーターを介して、インターネット、プリンタ等は動作させることが出来ていますので、ネットワークは機能しているはずなのですが。ipconfigで表示された他のipに対しては応答があります。またルーターの設定画面のなかではこのipアドレスにたいしてのpingテストは出来ています。コマンドプロンプトからのpingテストができないのです。 質問1:デフォルトゲートウェイに対してpingコマンドは使えるのでしょうか? 質問2:現在パソコン→ルーター→プリンタと繋がっていますが、ipconfig /allでルーターから先のipアドレス(プリンタ)は確認できるのでしょうか?現在は出来ていません。 ネットワークに関する知識がないので、質問が間違っているかもしれません、それも含めてご教示宜しくお願いします。

  • PINGで教えてください。

    教えてください。 IPルータ接続で、例えば、 192.168.1.0/24セグメント 192.168.2.0/24セグメント 192.168.3.0/24セグメント になっているネットワーク構成で、 自セグメントが192.168.1.0/24で、192.168.1.1のPCから、PINGコマンドを次のように入れたら、 PING 192.168.3.0と入れたら、 192.168.3.254(ルータのアドレス)の応答が返ってきました。 PING xx.xx.xx.0と入れる意味を教えてください。

  • pingコマンドのデフォルト値は?

    初めて質問させていただきます。 Windows系で使われる「ping」コマンドですが、通常 「ping XXX.XXX.XXX.XXX」とデフォルトでコマンド 入力した場合のタイムアウトは、デフォルトで何秒に なっているのでしょうか? よろしくお願いします。

  • ブロードキャストにPINGしたい

    同ネットワーク上の全てのPCにPINGしIPアドレスを調べる為、ブロードキャストアドレスにPINGを試したいと思いました。 IPアドレスは192.168.1.1 サブネットマスクは255.255.255.0なのでPING 192.168.1.255と実行すればいいと思ったのですが、BadIPaddressになってしまいます。同ネットワーク上のPCは全てwindows95です。 根本的にやり方が間違っているのでしょうか?  便利なツールもあると思いますが、標準外のソフトを入れる事を禁止されているので。。。 宜しくお願いします。

  • pingで・・・

    ネットワークアドレスをPINGで打つと何がわかるのでしょうか? 一度やってみたらいつもと違う反応でした。(いつもというのはつながっているIPアドレスにPINGで打つとのことです) ちなみにブロードキャストアドレスにもPINGで打つと何がわかるのでしょうか? よろしくお願いします。

  • Pingができない

    先日は、WindowsでDHCPサーバを動かす方法を教えていただきました。 それでWindows98SEでDHCPサーバを動かしています。 もう一方でTurboLinux 7.0を動かしています。 TurboLinuxでは、確かにDHCPよりもらったIPアドレスが割り当てられます。 TurboLinux自身で自分のIPアドレスにPingすると正常に動作します。 しかし、Windows側からは、Pingできません。 DHCPで割り当てることは正常にできているので、一応接続はされているのですが。 どこを調べればよいのでしょうか。ヒントをお願いします。 また、TurboLinux側からもWindows側にPingできません。

このQ&Aのポイント
  • 愛用のPX-G5300プリンターが突然使用不可になりました
  • プリンターの修理はできず、泣き寝入りするしかありません
  • また、インクの在庫もあるため、どうすればいいか悩んでいます
回答を見る

専門家に質問してみよう