集册 Java实例教程 检查子网是否包含特定的IP地址。

检查子网是否包含特定的IP地址。

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

535
检查子网是否包含特定的IP地址。

/**

 * Copyright 2009-2011 ?cole de technologie sup?rieure,

 * Communication Research Centre Canada,

 * Inocybe Technologies Inc. and 6837247 CANADA Inc.

 *

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

 */

//package com.nowjava;
/* 
 来自 
*nowjava - 时代Java*/

import java.net.InetAddress;


public class Main {

    /**

     * Checks if a subnet contains a specific IP address.

     * @param network The network address.

     * @param netmask The subnet mask.

     * @param ip The IP address to check.

     * @return A boolean value.

     */

    public static boolean contains(InetAddress network,

            InetAddress netmask, InetAddress ip) {


        byte[] networkBytes = network.getAddress();

        byte[] netmaskBytes = netmask.getAddress();

        byte[] ipBytes = ip.getAddress();


        /* check IPv4/v6-compatibility or parameters: *//** N o w J a v a . c o m - 时  代  Java 提 供 **/

        if (networkBytes.length != netmaskBytes.length

                || netmaskBytes.length != ipBytes.length) {

            return false;

        }


        /* Check if the masked network and ip addresses match: */

        for (
展开阅读全文