大家好!我目前正努力在我的页面中打印客户端的IP地址。我一直在研究它,似乎JavaScript不是一个选择。由于我的网页是在Rails上开发的,我考虑过使用ruby进行编码,但我认为客户端应该安装ruby以使代码正常工作,这是不可能的。然后我想Java,它可能需要java web插件,但比其他方法更接近。
我已经有了一些代码,创建了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>
我甚至不知道是否有一种向用户显示地址的简单方法,目的是向他们展示他们的本地IP地址而无需调整他们的PC,也许安装java插件不会也可以接受,但是,嘿,这是什么。
希望有人可以给我一个建议!
答案 0 :(得分:0)
你不需要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));