564060410
2021-06-06 12:28
采纳率: 100%
浏览 25

小白,想请教各位大神一个问题,是关于java获取ip地址的

  

我使用的是这个代码

 public String GetIp() {
            try {
 
                for (Enumeration<NetworkInterface> en = NetworkInterface
 
                        .getNetworkInterfaces(); en.hasMoreElements();) {
 
                    NetworkInterface intf = en.nextElement();
 
                    for (Enumeration<InetAddress> ipAddr = intf.getInetAddresses(); ipAddr
 
                            .hasMoreElements();) {
 
                        InetAddress inetAddress = ipAddr.nextElement();
                        // ipv4地址
                        if (!inetAddress.isLoopbackAddress()
                                && inetAddress instanceof Inet4Address) {
 
                            return inetAddress.getHostAddress();
 
                        }
 
                    }
 
                }
 
            } catch (Exception ex) {
 
            }
 
            return null;
 
    }

在eclipse和Idea里这个都能运行和输出正确的ip地址,但是在Android studio里输出的都是错误的

就像图上这样,return的是实际的ip地址,但输出的是另一个地址

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 冰思雨 2021-06-07 10:14
    已采纳

    手机上面获取的IP地址,几乎没有公网地址的,基本上获取的都是私有地址。

    遇到私有地址,是常见的现象,不影响通讯就行了。

    几乎没有拿手机做服务器的事情,并且,手机在移动通讯行业里面被称作移动终端。

    已采纳该答案
    打赏 评论
  • CSDN专家-Time 2021-06-06 12:29

    你return的时候 写的是另一个地址啊。。

    打赏 评论
  • 有问必答小助手 2021-06-07 18:59

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题