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 ?
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();