集册 Java实例教程 检查网络掩码,例如。

检查网络掩码,例如。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

689
检查网络掩码,例如。

/*

 * 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.

 *

 */

import java.net.InetAddress;

import java.net.UnknownHostException;

import org.apache.log4j.Logger;/*时 代 J a v a 公 众 号 - N o w J a v  a . c o m 提 供*/


public class Main{

    private static final Logger log = Logger

            .getLogger(InetAddressUtil.class);

    /**

     * Check netmask, e.g. 255.255.255.240 is fine, 255.255.240.16 is illegal (needs to be 255.255.240.0)

     * @param netmask The netmask address.

     * @return An integer value. -1 if illegal netmask, otherwise 0, 1, 2, 3

     * 

     * @deprecated This was an internal implementation detail of the

     *      method {@link #contains} and should never have been

     *      made public. Furthermore it's broken for IPv6.

     *      (However, there is no real replacement. If you

     *      need this functionality, you should rewrite it

     *      yourself.)

     */

    public static int checkNetmask(InetAddress netmask) {

        String[] parts = netmask.getHostAddress().split("\\.");

        Integer[] numbers = new Integer[4];

        for (int i = 0; i < 4; i++) {

            numbers[i] = new Integer(parts[i]);

        }


        for (int i = 0; i < 4; i++) {

            log.debug(".checkNetmask(): Check part: " + numbers[i]);

            if (0 <= numbers[i].intValue() && numbers[i].intValue() <= 255) {

                if (numbers[i].intValue() != 255) {
                /**
                 * 时代Java 提 供 
                **/

                    for (int k = i + 1; k < 4; k++) {

                        if (numbers[k].intValue() != 0) {

                            log.error(".checkNetmask(): Illegal Netmask: "

                                    + netmask);

                            return -1;

                        }

                    }

                    return i;

                } else {

                    
展开阅读全文