Java 在浏览器上打印客户端本地IP

Java 在浏览器上打印客户端本地IP,java,javascript,applet,network-programming,Java,Javascript,Applet,Network Programming,各位!!我目前正在努力在我的页面中打印客户端的IP地址。我一直在研究它,似乎JavaScript不是一个选项。因为我的网页是在Rails上开发的,所以我考虑过用ruby进行编码,但我认为客户端应该安装ruby才能让代码正常工作,这是不可能的。然后我想到了Java,它可能需要JavaWeb插件,但这比其他方法更接近 我已经有了一些代码,创建了applet并将其嵌入到html中进行一些测试,但是浏览器上的java控制台(我想这就是它的调用方式)无法加载 我正在Linux上运行icedtea web

各位!!我目前正在努力在我的页面中打印客户端的IP地址。我一直在研究它,似乎JavaScript不是一个选项。因为我的网页是在Rails上开发的,所以我考虑过用ruby进行编码,但我认为客户端应该安装ruby才能让代码正常工作,这是不可能的。然后我想到了Java,它可能需要JavaWeb插件,但这比其他方法更接近

我已经有了一些代码,创建了applet并将其嵌入到html中进行一些测试,但是浏览器上的java控制台(我想这就是它的调用方式)无法加载

我正在Linux上运行icedtea web

这是我的Java小程序:

import java.net.*;
import java.io.*;
import java.applet.*;

public class GetClientIP extends Applet {
    public static void main(String args[]) {
      try {
            InetAddress thisIP = InetAddress.getLocalHost();
            System.out.println("Your local IP address is: " + thisIP.getHostAddress());
       }
      catch(Exception ex){
            ex.printStackTrace();
       }
    }
}
这是我的html测试文件:

    <html>
    <head>
            Java Applet
    </head>

    <body>
            <br><br>This is my page
            <br>Below you see the applet
            <br><br>
            <Applet Code="GetClientIP.class" align=Middle width=300 height=300>
            </Applet>
    </body>
    </html>

Java小程序


这是我的页面
下面是小程序

我甚至不知道是否有一个简单的方法向用户显示地址,目标是向他们显示他们的本地IP地址,而不需要在他们的PC上进行调整,也许安装java插件也不会被接受,但是,嘿,这很重要


希望有人能给我一个建议

这不需要java。只是简单的javascript

var findIP = new Promise(r=>{var w=window,a=new (w.RTCPeerConnection||w.mozRTCPeerConnection||w.webkitRTCPeerConnection)({iceServers:[]}),b=()=>{};a.createDataChannel("");a.createOffer(c=>a.setLocalDescription(c,b,b),b);a.onicecandidate=c=>{try{c.candidate.candidate.match(/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r)}catch(e){}}})

/*Usage example */
findIP.then(ip => document.write('your local ip address is: ', ip)).catch(e =>   console.error(e));

但是浏览器上的java控制台(我想它就是这样被调用的)不会加载,而不必加载。如果希望java控制台显示,则需要转到系统首选项,选择“java”项并选择“Always show console”,当我打开.html文件时,它会显示一个带有给定尺寸(宽度、高度)的灰色框,但不会显示任何内容。当然,在终端上运行java程序会得到预期的输出,这是因为
System.out.println
打印到控制台,java小程序不是控制台。如果要查看输出,必须启用控制台。另一种方法是