安卓设备连接3G移动网络时获取IP地址

Posted

技术标签:

【中文标题】安卓设备连接3G移动网络时获取IP地址【英文标题】:Getting the IP address of the android device when connected to 3G mobile network 【发布时间】:2011-08-14 16:38:25 【问题描述】:

当我连接WiFi时,我可以获取android手机的IP地址。

但是,在3G等移动网络上,是否还能获取安卓手机的IP地址? 如果是,请发布相同的代码。

【问题讨论】:

【参考方案1】:

试试这样的

String ipAddress = null;
    try 
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) 
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) 
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) 
                    ipAddress = inetAddress.getHostAddress().toString();
                
            
        
     catch (SocketException ex) 

【讨论】:

获取 ip 地址 0.0.0.0 @Josnidhin 因为它在循环中运行,您如何确保您实际上获得了正确的 ip?使用这种方法获取的最后一个 ip(在循环迭代期间找到)可能会覆盖真正的 ip。【参考方案2】:

移动设备通过 3G 连接浏览时没有 ip,您将在服务器端代码上获取 ISP ip。如果可能,我建议您将 ip 替换为唯一 id、设备类型和坐标。

【讨论】:

以上是关于安卓设备连接3G移动网络时获取IP地址的主要内容,如果未能解决你的问题,请参考以下文章

JAVA获取IP地址[重复]

获取用于从 Android 设备连接到 Firebase 的 IP 地址 [重复]

linux下怎样获取网络设备的mac地址,ip地址等

机顶盒网络连接失败(自动获取IP地址失败 机顶盒无法获取到正确IP地址)

如何以编程方式通过 Wifi 获取连接在同一网络上的其他设备的 IP 地址?

10010机顶盒自动获取Ip地址失败或无效,网络连接失败