Java examples for Network:IP Address
Check netmask, e.g.
/*/*from ww w. j a v a 2 s . com*/ * 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; 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) { for (int k = i + 1; k < 4; k++) { if (numbers[k].intValue() != 0) { log.error(".checkNetmask(): Illegal Netmask: " + netmask); return -1; } } return i; } else { continue; } } else { // FIXME: This check not really be necessary because java.net.UnknownHostException should be thrown long time before log.error(".checkNetmask(): Illegal Netmask: " + netmask); return -1; } } if (log.isDebugEnabled()) { log.debug("All parts equal 255: " + netmask); } return 3; } }