ntputils.java

来自「apache推出的net包」· Java 代码 · 共 112 行

JAVA
112
字号
package org.apache.commons.net.ntp;/* * Copyright 2001-2005 The Apache Software Foundation * * Licensed 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: 165675 $ $Date: 2005-05-02 15:09:55 -0500 (Mon, 02 May 2005) $ */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 "";        StringBuffer buf = new StringBuffer(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";        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?