Search code examples
androidwifi

How to get both wifi's ip and wifi hotspot's ip in android?


I want to get both wifi's IP and wifi hotspot's IP.

My code :

public static String getWifiIp(@NonNull Context context) {
    WifiManager wifimanager = (WifiManager) context.getApplicationContext().getSystemService
            (Context.WIFI_SERVICE);
    if (wifimanager == null) {
        return null;
    }
    WifiInfo wifiInfo = wifimanager.getConnectionInfo();
    if (wifiInfo != null) {
        return intToIp(wifiInfo.getIpAddress());
    }
    return null;
}

I get wifi's IP with this code. But, How to get both wifi's IP and wifi hotspot's IP ?


Solution

  • Try this it may be helpful.

    For mobile ip:

    public static String getMobileIPAddress() {
        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()) {
                        return  addr.getHostAddress();
                    }
                }
            }
        } catch (Exception ex) { } // for now eat exceptions
        return "";
    }
    

    For wifi ip:

    public String getWifiIPAddress() {
        WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
        WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
        int ip = wifiInfo.getIpAddress();
        return  Formatter.formatIpAddress(ip);
    }
    

    Required permissions in manifest:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    

    Use it as:

    String wifiIp = getWifiIPAddress(); 
    String mobileIp = getMobileIPAddress();