1

我创建了一个java小程序来获取本地IP,在网页中输入这个小程序,但它只返回IP 127.0.0.1。
我测试了我在 stackoverflow 上找到的一些答案,但没有一个有效。
有什么方法可以让 IP Local 成为真实的吗?
我已经看到它在一些网站上运行。
以下是我制作的代码:

import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import javax.swing.JApplet;
public class PegaIP extends JApplet {
    @Override
    public void init() {
        try {
            getAppletContext().showDocument (new URL("javascript:UpdateIP(\"" + InetAddress.getLocalHost().getHostAddress() + "\")"));
        } catch (UnknownHostException | MalformedURLException e) {
            System.err.println("Ocorreu erro na criação da GUI");
        }
    }
}
4

1 回答 1

1

我的猜测是你需要允许特定的操作工作,因为你在一个小程序中,文档指出:

如果有安全管理器,则使用本地主机名和 -1 作为其参数调用其 checkConnect 方法,以查看是否允许该操作。如果不允许该操作,则返回表示环回地址的 InetAddress。

要测试它是否正确,您应该在普通的 Java 应用程序中尝试它,如果 127.0.0.1 没有返回,那么问题就存在于安全管理器中。你也可以打电话试试

public void checkConnect(String host, int port)

的当前安全经理,看看它是否引发了SecurityException.

阅读此处了解有关小程序及其权限的更多信息。

于 2012-11-23T00:20:06.080 回答