Java InetAddress contains(InetAddress network, InetAddress netmask, InetAddress ip)

Here you can find the source of contains(InetAddress network, InetAddress netmask, InetAddress ip)

Description

Checks if a subnet contains a specific IP address.

License

Apache License

Parameter

Parameter Description
network The network address.
netmask The subnet mask.
ip The IP address to check.

Return

A boolean value.

Declaration

public static boolean contains(InetAddress network, InetAddress netmask, InetAddress ip) 

Method Source Code

//package com.java2s;
/**/*from  w ww  . ja v  a  2  s  .  c o  m*/
 * 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.
 */

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: */
        if (networkBytes.length != netmaskBytes.length || netmaskBytes.length != ipBytes.length) {
            return false;
        }

        /* Check if the masked network and ip addresses match: */
        for (int i = 0; i < netmaskBytes.length; i++) {
            int mask = netmaskBytes[i] & 0xff;
            if ((networkBytes[i] & mask) != (ipBytes[i] & mask)) {
                return false;
            }
        }
        return true;
    }
}

Related

  1. checkConnection(InetAddress address, int port, int timeout)
  2. compareAddresses(InetAddress one, InetAddress two)
  3. compareInetAddresses(InetAddress a, InetAddress b)
  4. compareInetAddresses(InetAddress a1, InetAddress a2)
  5. CompareIP(InetAddress ip1, InetAddress ip2)
  6. convertInetAddressToLong(InetAddress addr)
  7. convertInetAddressToLong(InetAddress address)
  8. convertLongToInetAddress(long address)
  9. createAbsoluteURL(InetAddress address, int localStreamPort, URI relativeOrNot)