nethelper.java

来自「一个java编写的拓扑自动发现程序」· Java 代码 · 共 71 行

JAVA
71
字号
package com.sitech.net.topo.util;

public class netHelper {

	public String getNetNum(String Ipaddr, String NetMask) {
		String result = "";
		String[] ipParts = Ipaddr.split("\\.");
		String[] maskParts = NetMask.split("\\.");
		String[] netParts = new String[4];

		for (int i = 0; i < ipParts.length; i++) {
			ipParts[i] = this.afterAdd0(Integer.toString(Integer
					.parseInt(ipParts[i]), 2), 8);

			maskParts[i] = this.afterAdd0(Integer.toString(Integer
					.parseInt(maskParts[i]), 2), 8);

			// System.out.println(ipParts[i] + " " + maskParts[i]);
		}

		for (int i = 0; i < ipParts.length; i++) {
			String temp = "";
			for (int j = 0; j < ipParts[i].length(); j++) {
				temp = temp
						+ String.valueOf(Integer.parseInt(maskParts[i]
								.substring(j, j + 1))
								& Integer.parseInt(ipParts[i].substring(j,
										j + 1)));
			}
			netParts[i] = temp;
		}

		for (int i = 0; i < netParts.length; i++) {
			result = result
					+ String.valueOf(Integer.parseInt(String
							.valueOf(netParts[i]), 2)) + ".";
		}
		result = result.substring(0, result.length() - 1);

		return result;
	}

	/**
	 * 在输入的num前加0,总共digit位
	 * 
	 * @param num
	 *            输入数据
	 * @param digit
	 *            位数
	 * @return
	 */
	public String afterAdd0(String num, int digit) {
		String result = "";
		int numLength = num.length();
		for (int i = 0; i < (digit - numLength); i++) {
			result = result + "0";
		}
		result = result + num;
		return result;
	}

	public static void main(String args[]) {
		netHelper nethelper = new netHelper();
		String ipaddr = "130.30.2.6";
		String mask = "255.255.255.192";
		// System.out.println(nethelper.afterAdd0("11", 8));
		System.out.println(nethelper.getNetNum(ipaddr, mask));

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?