Get/Display IP address of android phone device programmatically

How to detect Mobile network and WiFi both networks connected current IP address using app.

In this tutorial we are getting mobile phone device ip address while phone is connected to Mobile data connection or WiFi connection. This code supports both connection and get ip address from both networks. So here is the complete step by step tutorial for Get/Display IP address of android phone device programmatically.

Please add below all three permissions inside Androidmanifest.xml file.

 <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"/>

android-project-download-code-button

How to Get/Display IP address of android phone device programmatically.

Code for MainActivity.java file.

 package com.displayipaddress_android_examples.com;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.format.Formatter;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

 Button button;
 TextView textview;
 String IPaddress;
 Boolean IPValue;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 button = (Button)findViewById(R.id.button1);
 textview = (TextView)findViewById(R.id.textView1); 
 
 button.setOnClickListener(new View.OnClickListener() {
 
 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 
 NetwordDetect();
 
 }
 });
 
 }
 
 
 //Check the internet connection.
 private void NetwordDetect() {
 
 boolean WIFI = false;
 
 boolean MOBILE = false;
 
 ConnectivityManager CM = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
 
 NetworkInfo[] networkInfo = CM.getAllNetworkInfo();
 
 for (NetworkInfo netInfo : networkInfo) {
 
 if (netInfo.getTypeName().equalsIgnoreCase("WIFI"))
 
 if (netInfo.isConnected())
 
 WIFI = true;
 
 if (netInfo.getTypeName().equalsIgnoreCase("MOBILE"))
 
 if (netInfo.isConnected())
 
 MOBILE = true;
 }
 
 if(WIFI == true)
 
 {
 IPaddress = GetDeviceipWiFiData();
 textview.setText(IPaddress);
 
 
 }
 
 if(MOBILE == true)
 {
 
 IPaddress = GetDeviceipMobileData();
 textview.setText(IPaddress);
 
 }
 
}
 
 
 public String GetDeviceipMobileData(){
 try {
 for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); 
 en.hasMoreElements();) {
 NetworkInterface networkinterface = en.nextElement();
 for (Enumeration<InetAddress> enumIpAddr = networkinterface.getInetAddresses(); enumIpAddr.hasMoreElements();) {
 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()
 {
 
 WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
 
 @SuppressWarnings("deprecation")
 
 String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
 
 return ip;
 
 }
 
}

Code for activity_main.xml layout file.

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.displayipaddress_android_examples.com.MainActivity" >

 <TextView
 android:id="@+id/textView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 android:layout_marginTop="188dp"
 android:text="IP Address display Here"
 android:textAppearance="?android:attr/textAppearanceLarge" />

 <Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_below="@+id/textView1"
 android:layout_centerHorizontal="true"
 android:layout_marginTop="22dp"
 android:text="Click here to get current device " />

</RelativeLayout>

Code for AndroidManifest.xml file.

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.displayipaddress_android_examples.com"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-sdk
 android:minSdkVersion="8"
 android:targetSdkVersion="21" />

 <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"/>
 
 <application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name=".MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />

 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 </application>

</manifest>

Screenshot:

Get/Display IP address of android phone device programmatically

get-ip

Click here to download Get/Display IP address of android phone device programmatically project with source code.