小白,想请教各位大神一个问题,是关于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地址,但输出的是另一个地址

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

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

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

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

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

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

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