利用JNI调用Java工具类得到MAC地址
Enumeration<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces(); while (nis.hasMoreElements()) { NetworkInterface ni = nis.nextElement(); byte[] bs = ni.getHardwareAddress(); if (ni != null && ni.isUp() && bs != null && bs.length == 6){ StringBuffer sb = new StringBuffer(); for (byte b : bs) { //与11110000作按位与运算以便读取当前字节高4位 sb.append(Integer.toHexString((b & 240) >> 4)); //与00001111作按位与运算以便读取当前字节低4位 sb.append(Integer.toHexString(b & 15)); sb.append("-"); } sb.deleteCharAt(sb.length() - 1); System.out.println(sb.toString().toUpperCase()); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
C反编译难度较大、反编译后的可读性也很差~
回复
关键字 IDA F5 反编译出来效果,基本接近源码级别(因为你大量的使用了jni)。
恩恩。我也想过。但是之所以用JNI。就是因为Java的class能被反编译。。所以这些必须要用C实现~求大神支招
回复
这段被反编译又何妨?再说就算用jni,要修改代码,直接从java层改就可以了。
回复
赞同!