Java 关于使用小程序检测专用Ip地址的建议

Java 关于使用小程序检测专用Ip地址的建议,java,tomcat,web-applications,applet,ip,Java,Tomcat,Web Applications,Applet,Ip,我在检测连接到我构建的web应用程序的客户端私有ip时遇到了一些问题。 查看我的测试结果(在运行windows的计算机中): 1-在某些机器(来自不同的位置、国家或地区)中,小程序为我提供正确的ip,但 2-在其他情况下,我获得了ip=127.0.0.1: 我试图解决什么问题? 例如:我已经停止了avast程序保护(web屏蔽),小程序开始为我提供正确的私有ip。 B-在其他机器上,我试过“点A”,但不起作用 我也编辑主机文件,但我没有工作 我需要你帮我了解发生了什么?要解决此问题,请查看何处。

我在检测连接到我构建的web应用程序的客户端私有ip时遇到了一些问题。 查看我的测试结果(在运行windows的计算机中): 1-在某些机器(来自不同的位置、国家或地区)中,小程序为我提供正确的ip,但 2-在其他情况下,我获得了ip=127.0.0.1: 我试图解决什么问题? 例如:我已经停止了avast程序保护(web屏蔽),小程序开始为我提供正确的私有ip。 B-在其他机器上,我试过“点A”,但不起作用 我也编辑主机文件,但我没有工作

我需要你帮我了解发生了什么?要解决此问题,请查看何处。。。 请不要回答“为什么你需要私有ip?它可能会改变…”。。。我知道所有要连接到我的web应用程序的机器,所以我可以配置它们

我的小程序使用的部分源代码:

private String PrivateIP(boolean flag)
{
    String s1 = "unknown";
    String s2 = getDocumentBase().getHost();
    int i = 80;
    if(getDocumentBase().getPort() != -1)
        i = getDocumentBase().getPort();
    try
    {
        String s = (new Socket(s2, i)).getLocalAddress().getHostAddress();
        if(!s.equals("255.255.255.255"))
            s1 = s;
    }
    catch(SecurityException _ex)
    {
        s1 = "FORBIDDEN";
    }
    catch(Exception _ex)
    {
        s1 = "ERROR";
    }
    if(flag)
        try
        {
            s1 = (new Socket(s2, i)).getLocalAddress().getHostName();
        }
        catch(Exception _ex)
        {
            Stat = "Cannot Lookup this IP";
        }
    return s1;
}
我将向您介绍更多信息: 我一直这样做是为了从其他方法获得ip,但同样的结果,我也在无法获得正确ip的机器上运行并获得了一条消息,如“恭喜你没有任何要打开的端口”xD


提前谢谢

首先,如果有多个网络接口,客户端上可以有多个IP地址可用。方法返回的是哪一个取决于要打开的
new Socket()
使用的是哪一个

现在,您不必打开套接字来获取客户端的IP。相反,您可以这样列举它们:

String host = InetAddress.getLocalHost().getHostName();

InetAddress[] addressArray = InetAddress.getAllByName(host);

String[] ipArray = new String[addressArray.length];
for (int i = 0; i < addressArray.length; i++) {
    InetAddress addr = addressArray[i];
    ipArray[i] = addr.getHostAddress();
}

return ipArray;
String host=InetAddress.getLocalHost().getHostName();
InetAddress[]addressArray=InetAddress.getAllByName(主机);
String[]ipArray=新字符串[addressArray.length];
for(int i=0;i

现在,
ipArray
将在客户端工作站上保存一个可用IP地址列表。

“这样我就可以配置它们了。”因此,将它们配置为允许小程序跳出沙箱,读取您放在沙箱中的文件内容和其中的信息。“我可以配置它们”,但是…我不知道要配置什么xD,正如我所说,在某些情况下,停止防病毒保护解决了问题……到目前为止,我是这方面的专家,因此我征求您的建议。我已经尝试过这一点,但我获得的主机值是“localhost”,返回127.0.0.1