首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过编程获取android手机的ip地址...?

如何通过编程获取android手机的ip地址...?
EN

Stack Overflow用户
提问于 2014-10-16 18:34:41
回答 2查看 46K关注 0票数 7

我想知道android设备的确切IP地址,当它通过wifi连接到网络时!有没有人可以帮我在手机连网时获取ip地址,以及如何通过编程获取ip地址。

EN

回答 2

Stack Overflow用户

发布于 2014-10-16 18:44:31

我用了这个,它起作用了!

代码语言:javascript
复制
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());

在清单文件中的权限下。

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
票数 16
EN

Stack Overflow用户

发布于 2016-07-12 14:06:27

您可以使用此方法获取设备的IP地址,对于IPv4,传递true;对于IPv6,传递false

代码语言:javascript
复制
 public static String getIPAddress(boolean useIPv4) {
    try {
        List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface intf : interfaces) {
            List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
            for (InetAddress addr : addrs) {
                if (!addr.isLoopbackAddress()) {
                    String sAddr = addr.getHostAddress();
                    //boolean isIPv4 = InetAddressUtils.isIPv4Address(sAddr);
                    boolean isIPv4 = sAddr.indexOf(':')<0;

                    if (useIPv4) {
                        if (isIPv4) 
                            return sAddr;
                    } else {
                        if (!isIPv4) {
                            int delim = sAddr.indexOf('%'); // drop ip6 zone suffix
                            return delim<0 ? sAddr.toUpperCase() : sAddr.substring(0, delim).toUpperCase();
                        }
                    }
                }
            }
        }
    } catch (Exception ex) { } // for now eat exceptions
    return "";
}

多亏了这个ans How to get IP address of the device?

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26402218

复制
相关文章

相似问题

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