从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; /** from 时代Java公众号**/ import java.net.InetAddress; public class Main { /** * Compute network address from IP and mask * @param ip * @param mask * @return */ public static String computeNetworkAddress(InetAddress ip, InetAddress mask) { int addr = InetAddressToInt(ip); int maskInt = InetAddressToInt(mask); return IpToString(addr & maskInt); } /** Convert ip to an integer * @param ip InetAddress to convert * @return Integer */ public static int InetAddressToInt(InetAddress ip) { if (ip == null) return -1; byte[] adr = ip.getAddress(); int[] i = new int[4]; for (int j = 0; j < 4; j++) {/** nowjava.com 提供 **/ i[j] = (int) ((adr[j] < 0) ? (256 + adr[j]) : adr[j]); } return i[3] + (i[2] << 8) + (i[1] << 16) + (i[0] << 24); } /** * Convert an IP address stored in an int to its string representation. * @param address * @return */ public static String IpToString(