dポイントプレゼントキャンペーン実施中!

Javaコンソールツールを作成して、その中でNTPサーバーにアクセスが必要です。

ネットを探しても、Java API ドキュメントをダウンロードして検索してもNTPについてのサンプルコードや記述が見つかりませんでした。

JavaでNTPサーバーにアクセスするには、どのようにアクセスすればよいのでしょうか?

よろしくお願い致します。

A 回答 (2件)

Googleで探してみたところ、The Apache Software Foundationが配布しているThe Jakarta Commons projectにntp実装が含まれてますね。



http://jakarta.apache.org/commons/ からNet ComponentをみてJavaDocをみるとPackage org.apache.commons.net.ntp っちゅーのがあるようです。どういう用途に使うのかは知りませんが、Apache projectならライセンスについても比較的楽なのでは。

この回答への補足

いただいた情報を元に、トライ&トライで頑張って動かなかったので、なんとかサンプルを探し当てたのですが、2005年にしてテストして見ると下記のようにどうしても実行しているコンピュータの時刻が帰ってきてしまいます。
Tue Sep 06 21:18:42 JST 2005

どうすれば、NTPサーバーからの時刻を引っ張ってこれるのでしょうか?

(参考にした情報)http://jakarta.apache.org/commons/net/apidocs/in …
http://www.portaljava.com.br/home/modules.php?na …


import org.apache.commons.net.ntp.NTPUDPClient;
import org.apache.commons.net.ntp.TimeInfo;
import java.net.InetAddress;
import java.util.Date;

public class ntp {
public static void main(String args[]) {

try {
NTPUDPClient ntp = new NTPUDPClient();
ntp.open();
String ntphost = "ntp.jst.mfeed.ad.jp";
InetAddress inet = InetAddress.getByName(ntphost);
TimeInfo time = ntp.getTime(inet);
ntp.close();
Date hora = new Date(time.getReturnTime());
System.out.println(hora);

} catch (Exception e) {
e.printStackTrace();
}

}
}

補足日時:2006/09/06 21:20
    • good
    • 0
この回答へのお礼

ありがとうございました。
標準のパッケージであるものとばかり思っていましたがないということなのですね。
大変助かりました。
ありがとうございました。

お礼日時:2006/09/06 21:19

まずNTPについて勉強してみましょう。

そうすると、NTPは時刻を合わせるためのプロトコルであり、その際にいろいろと考えなくてはいけないことがあるということがわかってくるように思います。

# 私もそれほどわかってはいないので説明はしません。

その上でPackage org.apache.commons.net.ntpを見ると、各クラスの役割とかがわかって来て、なにが抜けているかが推測できるようになるのではないかと。

たぶんTimeInfoクラスのmethodをもう少し使う必要があるのだと思います。自信はないですけど。
    • good
    • 0
この回答へのお礼

ご親切にご助言ありがとうございました。

ソフトに使用期限を設けるため、外部の時計が使いたかったのですが、ふと回避策が思い浮かびました。

時刻はNTPという頭があったため、NTPに囚われていたいたのですが、Webサーバー上にCGIを作成し、時刻を取得すればよいことに気づきました。

今回は時間がなかったため、上記回避策で対応しました。ありがとうございました。

お礼日時:2006/09/08 02:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!