通过dos命令获得服务器网卡地址-适合Windows和Linux

/**
	 * 获得服务器网卡地址
	 * 
	 * @return 服务器网卡地址
	 */
	private String getServerMACAddress() {
		String address = "";
		String os = AppContext.SERVER_OS_NAME;
		// 如果是Windows系统
		if (os.startsWith("Windows")) {
			try {
				String command = "cmd.exe /c ipconfig /all";
				Process p = Runtime.getRuntime().exec(command);
				BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
				String line = null;
				while ((line = buf.readLine()) != null) {
					if (line.indexOf("Physical Address") >= 0) {
						int index = line.indexOf(":");
						index += 2;
						address = line.substring(index);
						break;
					}
				}
				buf.close();
				return address.trim();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		// 如果是Linux操作系统
		else if (os.startsWith("Linux")) {
			try {
				String command = "/bin/sh -c ifconfig -a";
				Process p = Runtime.getRuntime().exec(command);
				BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
				String line = null;
				while ((line = buf.readLine()) != null) {
					if (line.indexOf("HWaddr") > 0) {
						int index = line.indexOf("HWaddr") + "HWaddr".length();
						address = line.substring(index);
						break;
					}
				}
				buf.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		// 未知操作系统
		else {

		}
		address = address.trim();
		return address;
	}

你可能感兴趣的:(windows,linux,IP,dos)