阅读背景:

根据ip地址和子网掩码获取广播地址的java实现

来源:互联网 


	/**
	 * 获得广播地址
	 * */
	public static String getBroadcastAddress(String subnet, String ip) {
		String[] ips = ip.split("\.");
		String[] subnets = subnet.split("\.");
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < ips.length; i++) {
			ips[i] = String.valueOf((~Integer.parseInt(subnets[i]))
					| (Integer.parseInt(ips[i])));
			sb.append(turnToStr(Integer.parseInt(ips[i])));
			if (i != (ips.length - 1))
				sb.append(".");
		}
		return turnToIp(sb.toString());
	}

	private static String turnToStr(int num) {
		String str = "";
		str = Integer.toBinaryString(num);
		int len = 8 - str.length();
		for (int i = 0; i < len; i++) {
			str = "0" + str;
		}
		if (len < 0)
			str = str.substring(24, 32);
		return str;
	}

	/**
	 * 转换成Str
	 * */
	private static String turnToIp(String str) {
		String[] ips = str.split("\.");
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < ips.length; i++) {
			sb.append(turnToInt(ips[i]));
			sb.append(".");
		}
		sb.deleteCharAt(sb.length() - 1);
		return sb.toString();
	}

	/**
	 * 转换成int
	 * */
	private static int turnToInt(String str) {
		int total = 0;
		int top = str.length();
		for (int i = 0; i < str.length(); i++) {
			String h = String.valueOf(str.charAt(i));
			top--;
			total += ((int) Math.pow(2, top)) * (Integer.parseInt(h));
		}
		return total;
	}	/**
	 * 获得广播地址
	 * */
	public static String get




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: