public static HardwareAddress getHardwareAddressByString(String macStr) {
		if (macStr == null) {
			throw new NullPointerException("macStr is null");
		}
		String[] macAdrItems = macStr.split(":");
		if (macAdrItems.length != 6) {
			throw new IllegalArgumentException("macStr["+macStr+"] has not 6 items");
		}
		byte[] macBytes = new byte[6];
		for (int i=0; i<6; i++) {
			int val = Integer.parseInt(macAdrItems[i], 16);
			if ((val < -128) || (val > 255)) {
				throw new IllegalArgumentException("Value is out of range:"+macAdrItems[i]);
			}
			macBytes[i] = (byte) val;
		}
		return new HardwareAddress(macBytes);		
	}