У меня есть программное обеспечение, работающее в OpenShift (Kubernetes), где лицензия основана на MAC-адресе. При перезапуске приложения MAC-адрес контейнера меняется, и мне нужно подать заявку на новый файл лицензии.
Поскольку в модулях k8s нет статического MAC-адреса, я хочу подделать Java-вызов NetworkInterface.getHardwareAddress (), чтобы заставить программное обеспечение думать, что MAC-адрес все тот же.
Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
while (enumeration.hasMoreElements()) {
NetworkInterface networkInterface = (NetworkInterface) enumeration.nextElement();
if (networkInterface.isLoopback() || networkInterface.isPointToPoint() || networkInterface.isVirtual()) {
continue;
}
if (networkInterface.isUp()) {
byte[] arrayOfByte = networkInterface.getHardwareAddress();
if (arrayOfByte != null && arrayOfByte.length == 6) {
StringBuilder stringBuilder = new StringBuilder();
for (byte b = 0; b < arrayOfByte.length; b++) {
if (b != 0) {
stringBuilder.append(":");
}
stringBuilder.append(String.format("%02x", arrayOfByte[b]));
}
System.out.println(networkInterface.getName() + ": " + stringBuilder);
}
}
}
актуально: eth0: 01: 14: 4d: ec: 01: 42
ожидается: eth0: ee: ee: ee: ee: ee: ee