利用JNI调用Java工具类得到MAC地址

发布于 2021-11-25 02:53:08 字数 899 浏览 698 评论 5

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());
			}
		}



求上面这段代码的JNI版本。JNI+C(不能用C++)实现调用Java的工具类得到MAC地址。。。由于某些原因、不能直接用C获得MAC地址、需要JNI实现调用Java工具类。求帮助~


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

不再见 2021-11-29 20:25:37

C反编译难度较大、反编译后的可读性也很差~

爱的故事 2021-11-29 20:16:02

回复
关键字 IDA F5 反编译出来效果,基本接近源码级别(因为你大量的使用了jni)。

青萝楚歌 2021-11-29 19:39:38

恩恩。我也想过。但是之所以用JNI。就是因为Java的class能被反编译。。所以这些必须要用C实现~求大神支招

乞讨 2021-11-29 19:36:12

回复
这段被反编译又何妨?再说就算用jni,要修改代码,直接从java层改就可以了。

疑心病 2021-11-27 09:50:35

回复
赞同!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文