gpt4 book ai didi

java - 使用 Applet 获取客户端 MAC ID 时出现问题

转载 作者:行者123 更新时间:2023-12-01 04:37:17 25 4
gpt4 key购买 nike

我们正在尝试使用 Java Applet 获取客户端 MAC ID。小程序通过 HTML 页面加载。其代码如下:

public class mainRun extends Applet{
private static final long serialVersionUID = -4939998186435587428L;
String macAddr="";
public void paint(Graphics g)
{
try
{
System.out.println("Start");
InetAddress ip = InetAddress.getLocalHost();
System.out.println((new StringBuilder("Current IP address : "+ip.toString())));
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte mac[] = network.getHardwareAddress();
System.out.println("mac : "+mac.toString());
System.out.print("Current MAC address : ");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < mac.length; i++)
sb.append(String.format("%02X%s", new Object[] {
Byte.valueOf(mac[i]), i >= mac.length - 1 ? "" : "-"
}));

System.out.println(sb.toString());
macAddr=String.valueOf(sb);

}
catch(SocketException e)
{
macAddr=e.toString();
e.printStackTrace();
}
catch (Exception e) {
macAddr=e.toString();
e.printStackTrace();
}
g.drawString("HELLO: "+macAddr, 100, 100);
}
}

但是,在使用 getHardwareAddress() 方法时,我们遇到了空指针异常。

什么可能导致此问题?

此外,当我在本地计算机上运行与 Java Applet 相同的类时,我得到了所需的输出。当 Applet jar 放置在服务器上并且 applet 加载在客户端计算机上时,我遇到了这个问题。

最佳答案

getHardwareAddress 需要 NetPermission("getNetworkInformation")。 http://docs.oracle.com/javase/7/docs/api/java/net/NetworkInterface.html#getHardwareAddress()

因此需要对小程序 jar 进行签名。

关于java - 使用 Applet 获取客户端 MAC ID 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com