首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在浏览器上打印客户端本地IP

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

Stack Overflow用户
提问于 2014-01-30 00:41:46
回答 1查看 309关注 0票数 0

所有人!我目前正努力在我的页面中打印客户端的IP地址。我一直在研究它,似乎JavaScript不是一个选择。由于我的网页是在Rails上开发的,我想过用ruby编码,但我认为客户端应该安装ruby才能使代码正常工作,而这是不可能的。然后我想到了Java,它可能需要java web插件,但这比其他方法更接近。

我已经获得了一些代码,创建了applet并将其嵌入到html中进行了一些测试,但是浏览器上的java控制台(我猜它就是这样被调用的)就是不能加载。

我在Linux上运行icedtea-web。

下面是我的Java applet:

代码语言:javascript
复制
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测试文件:

代码语言:javascript
复制
    <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插件也不会被接受,但是,嘿,它是一些东西。

希望有人能给我一个建议!

EN

回答 1

Stack Overflow用户

发布于 2016-10-15 17:58:33

你不需要java来做这件事。就是普通的javascript。

代码语言: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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21437188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档