- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 OpenShift (Kubernetes) 中运行的软件,其中许可证基于 MAC 地址。重新启动应用程序时,容器的MAC地址发生变化,我必须申请新的许可证文件。
由于 k8s pod 中没有静态 MAC 地址,因此我想欺骗对 NetworkInterface.getHardwareAddress() 的 Java 调用,以欺骗软件认为 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
最佳答案
不幸的是,您无法在 Java 中执行此操作。
方法NetworkInterface::getNetworkInterfaces()
是作为native
实现的,这意味着它不会访问任何特定字段来获取其结果。如果确实如此,您可能会幸运地使用反射来破解一些东西,但就目前情况而言,您必须在操作系统配置中管理它。
编辑:至于 Kubernetes 解决方案,您可能需要查看 here
关于java - 如何欺骗 NetworkInterface.getHardwareAddress() (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56292659/
我想在 Eclipse 中调用 NetworkInterface 实例的 getHardwareAddress() 方法,但它显示“该方法 getHardwareAddress() 对于 Networ
我已经使用这个 API 来选择设备的 mac 地址, NetworkInterface.getHardwareAddress() 但这是针对 API 级别 9 及更高版本的,我应该使用什么来选择 AP
我有一个在 OpenShift (Kubernetes) 中运行的软件,其中许可证基于 MAC 地址。重新启动应用程序时,容器的MAC地址发生变化,我必须申请新的许可证文件。 由于 k8s pod 中
我正在尝试通过 ip 地址打印连接到我的网络的其他计算机的物理地址。 使用 arp -a 我可以看到所有网络及其物理地址。 但是当运行 java 代码时,我无法检索它对应的 ip 的物理地址,它在调用
我实际上是在尝试在 IBMi 上运行 OrientDB(应用了 iSeries、AS/400、V540、JDK6-32 位最后的 CUM PTF)。 OrientDB 早期所做的事情之一(可以这么说)
我在 Windows 计算机上有以下代码: for(Enumeration enm = NetworkInterface.getNetworkInterfaces(); enm.hasMoreElem
我有以下代码来提取我的 Ubuntu 设备的 MAC 地址,并且我将 MAC 地址放入数据库中。此代码在 Windows PC 中运行良好,但在 Ubuntu 设备中则不起作用。数据库字段变空。我的应
我在获取机器的 MAC 地址时遇到问题,已在 this question 中解决使用以下代码: Process p = Runtime.getRuntime().exec("getmac /fo cs
我是一名优秀的程序员,十分优秀!