0

我想获取WIFI连接(不是3G)使用的IP。有人知道怎么做吗?我用了:

public String getLocalIpAddress() {
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()) {
                return inetAddress.getHostAddress().toString();
            }
        }
    }
} catch (SocketException ex) {
    Log.e(LOG_TAG, ex.toString());
}
return null;

}

但它返回 ICS 上的 3G ip。

谢谢,

亚历克斯

4

2 回答 2

0
WifiInfo winfo = ((WifiManager)this.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo();
winfo.getIpAddress();

在执行上述操作之前,您可能需要检查您是否已连接到 Wifi

于 2012-05-31T13:59:13.213 回答
0

您无法根据 IP 地址检测连接类型,因为您的移动网络和家庭 WiFi 网络都可以分配私有 IP 地址。

您需要做的是首先检测您是否有移动网络或 WiFi 连接,然后根据该信息获取该连接的 IP 地址。

在 SO 中查看此线程,这与您在 ICS 上的问题相同

于 2012-05-31T14:14:33.460 回答