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

小白,想请教各位大神一个问题,是关于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地址,几乎没有公网地址的,基本上获取的都是私有地址。

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作