Java小程序仅返回127.0.0.1

标签 java applet ip-address

我创建了一个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");
        }
    }
}

最佳答案

我的猜测是,您需要允许特定操作工作,因为您位于小程序中,文档指出:

If there is a security manager, its checkConnect method is called with the local host name and -1 as its arguments to see if the operation is allowed. If the operation is not allowed, an InetAddress representing the loopback address is returned.

要测试这是否属实,您应该在普通的 Java 应用程序中尝试一下,如果未返回 127.0.0.1,则问题出在安全管理器内部。您也可以通过调用尝试

public void checkConnect(String host, int port)

检查当前安全管理器是否引发SecurityException

阅读here有关小程序及其权限的更多信息。

关于Java小程序仅返回127.0.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521620/

相关文章:

java - 运行本地 Java 小程序来访问 Safari 上的本地文件系统

java - 如何将用户输入列表添加到文本字段中

python - 获取主机的所有外部IP地址

Java评分程序: For-Loop Freezing or Working Improperly Issue

java - 房间递归关系解决方法

java - 制作网页表格 : Java vs HTML

java - 向某人介绍 OOP 的教程

video - 我们可以使用 Applet 播放音频和视频文件吗?

javascript - 服务器如何找到真实的客户端IP地址?

MySQL连接ip从指定的ip地址变化