首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式查找设备的公有IP地址?

如何以编程方式查找设备的公有IP地址?
EN

Stack Overflow用户
提问于 2018-05-28 13:47:58
回答 1查看 9.1K关注 0票数 0

我们可以通过WifiManager或InetAddress获取本地Ip地址。但是我们需要在android中以编程方式获得当前的公共IP地址。

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 14:03:44

在manifeast文件中添加权限

代码语言: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"/>

创建移动数据和Wifi状态的方法。

代码语言:javascript
复制
public String GetDeviceipMobileData(){
    try {
        for (java.util.Enumeration<java.net.NetworkInterface> en = java.net.NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            java.net.NetworkInterface networkinterface = en.nextElement();
            for (java.util.Enumeration<java.net.InetAddress> enumIpAddr = networkinterface.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                java.net.InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (Exception ex) {
        Log.e("Current IP", ex.toString());
    }
    return null;
}


public String GetDeviceipWiFiData(){
    android.net.wifi.WifiManager wm = (android.net.wifi.WifiManager) getSystemService(WIFI_SERVICE);
    @SuppressWarnings("deprecation")
    String ip = android.text.format.Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
    return ip;             
}

检查网络状态并调用此方法。

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

https://stackoverflow.com/questions/50559842

复制
相关文章

相似问题

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