এমুলেটরের IP Address বের করা
Android Emulator-র IP Address জানার প্রয়োজন হয় লোকাল সার্ভার (localhost) কনেক্ট করার সময়, নেটওয়ার্ক ডিবাগিং, বা বэкен্ড API টেস্ট করার সময়।
Emulator Network Architecture
- 10.0.2.2 → Host Machine (আপনার কম্পিউটারের localhost)
- 10.0.2.15 → Emulator নিজের IP (এমুলেটরের অভ্যন্তরীণ)
- 10.0.2.3 → প্রথম DNS Server
- 127.0.0.1 → Emulator নিজের লুপব্যাক (Host Machine নয়!)
ধাপ ১: প্রজেক্ট তৈরি
Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/btnGetIPAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
android:text="Get IP Address" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.format.Formatter;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
button = findViewById(R.id.btnGetIPAddress);
button.setOnClickListener(v -> getIPAddress());
}
private void getIPAddress() {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
if (wifiManager != null) {
int ipAddress = wifiManager.getConnectionInfo().getIpAddress();
String ip = Formatter.formatIpAddress(ipAddress);
textView.setText("IP Address: " + ip);
} else {
textView.setText("WiFi Service Unavailable");
}
}
}
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.emulatorip">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application ...>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Emulator-এ localhost (Host Machine) এক্সেস
// ❌ ভুল - এমুলেটরের নিজের লুপব্যাক String url = "https://127.0.0.1:3000/api"; // ✅ সঠিক - হোস্ট মেশিনের লোকালহোস্ট String url = "https://10.0.2.2:3000/api"; // ✅ সঠিক - হোস্ট মেশিনের লোকাল IP (WiFi/LAN-এ থাকলে) // আপনার কম্পিউটারের IP পেতে: ipconfig (Win) / ifconfig (Mac/Linux) // String url = "https://192.168.1.100:3000/api";
Emulator Extended Controls-এ IP দেখুন
- Emulator Toolbar-এ Three Dots (⋮) → Extended Controls
- Settings → Proxy ট্যাব → দেখুন "10.0.2.15" (Emulator IP)
- Network ট্যাবে আরও ডিটেইল পাবেন
ADB কমান্ড দিয়ে IP বের করা
# Emulator শেলে ঢুকুন adb shell # Network Interface দেখুন ip addr show wlan0 # বা ifconfig wlan0 # আউটপুট: inet 10.0.2.15/24 ...
রিয়েল ডিভাইসে IP বের করা
// WiFi IP (কনেক্টেড থাকলে)
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = Formatter.formatIpAddress(ip);
// Mobile Data IP (API 29+)
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Network network = cm.getActiveNetwork();
NetworkCapabilities caps = cm.getNetworkCapabilities(network);
if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
// Mobile data IP পাওয়া কঠিন, সাধারণত NAT পেছনে থাকে
}
সাধারণ সমস্যা
| সমস্যা | সমাধান |
|---|---|
| 0.0.0.0 রিটার্ন করে | WiFi কনেক্টেড নেই - Emulator Settings-এ WiFi অন করুন |
| Host-এ সার্ভার রান করলেও কনেক্ট হয় না | Firewall চেক করুন, 10.0.2.2 ব্যবহার করুন, সার্ভার 0.0.0.0:PORT-এ বাইন্ড করুন |
| Permission Denied | ACCESS_WIFI_STATE পারমিশন Manifest-এ যোগ করুন |