Here you can find the source of contains(InetAddress network, InetAddress netmask, InetAddress ip)
Parameter | Description |
---|---|
network | The network address. |
netmask | The subnet mask. |
ip | The IP address to check. |
public static boolean contains(InetAddress network, InetAddress netmask, InetAddress ip)
//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; } }