alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Commons Net example source code file (NtpUtils.java)

This example Commons Net source code file (NtpUtils.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Commons Net tags/keywords

active, broadcast, client, ntputils, ntputils, private, reserved, string, string, stringbuilder, stringbuilder, symmetric, symmetric, unknown

The Commons Net NtpUtils.java source code

package org.apache.commons.net.ntp;
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


/***
 * Common NtpUtils Helper class.
 *
 * @author Jason Mathews, MITRE Corp
 *
 * @version $Revision: 929344 $ $Date: 2010-03-31 01:20:49 +0100 (Wed, 31 Mar 2010) $
 */
public final class NtpUtils {

    /***
      * Returns 32-bit integer address to IPv4 address string "%d.%d.%d.%d" format.
      *
      * @param address  the 32-bit address
      * @return  the raw IP address in a string format.
      */
     public static String getHostAddress(int address)
     {
          return ((address >>> 24) & 0xFF) + "." +
                 ((address >>> 16) & 0xFF) + "." +
                 ((address >>>  8) & 0xFF) + "." +
                 ((address >>>  0) & 0xFF);
     }

    /***
     * Returns NTP packet reference identifier as IP address.
     *
     * @param packet  NTP packet
     * @return  the packet reference id (as IP address) in "%d.%d.%d.%d" format.
     */
     public static String getRefAddress(NtpV3Packet packet)
     {
         int address = (packet == null) ? 0 : packet.getReferenceId();
         return getHostAddress(address);
     }

    /***
     * Get refId as reference clock string (e.g. GPS, WWV, LCL). If string is
     * invalid (non-ASCII character) then returns empty string "".
     * For details refer to the <A HREF="http://www.eecis.udel.edu/~mills/ntp/html/refclock.html#list">Comprehensive
     * List of Clock Drivers</A>.
     *
     * @param message
     * @return reference clock string if primary NTP server
     */
    public static String getReferenceClock(NtpV3Packet message) {
        if (message == null)
            return "";
        int refId = message.getReferenceId();
        if (refId == 0)
            return "";
        StringBuilder buf = new StringBuilder(4);
        // start at highest-order byte (0x4c434c00 -> LCL)
        for (int shiftBits = 24; shiftBits >= 0; shiftBits -= 8)
        {
            char c = (char) ((refId >>> shiftBits) & 0xff);
            if (c == 0) break; // 0-terminated ASCII string
            if (!Character.isLetterOrDigit(c))
                return "";
            buf.append(c);
        }
        return buf.toString();
    }

    /***
     * Return human-readable name of message mode type (RFC 1305).
     *
     * @param mode
     * @return mode name
     */
    public static String getModeName(int mode)
    {
        switch (mode) {
            case NtpV3Packet.MODE_RESERVED:
                return "Reserved";
            case NtpV3Packet.MODE_SYMMETRIC_ACTIVE:
                return "Symmetric Active";
            case NtpV3Packet.MODE_SYMMETRIC_PASSIVE:
                return "Symmetric Passive";
            case NtpV3Packet.MODE_CLIENT:
                return "Client";
            case NtpV3Packet.MODE_SERVER:
                return "Server";
            case NtpV3Packet.MODE_BROADCAST:
                return "Broadcast";
            case NtpV3Packet.MODE_CONTROL_MESSAGE:
                return "Control";
            case NtpV3Packet.MODE_PRIVATE:
                return "Private";
            default:
                return "Unknown";
        }
    }

}

Other Commons Net examples (source code examples)

Here is a short list of links related to this Commons Net NtpUtils.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.