it-swarm.com.de

Wie erhalte ich die Android Emulator IP-Adresse?

Ich möchte die IP-Adresse von Android Emulator über den Code abrufen. Wie kann es erreicht werden?

66
Rajapandian

Zur Verdeutlichung: In Ihrer App können Sie den Emulator einfach als 'localhost' oder 127.0.0.1 bezeichnen.

Der Webdatenverkehr wird über Ihren Entwicklungscomputer geleitet. Die externe IP-Adresse des Emulators entspricht der IP-Adresse, die dieser Computer von Ihrem Provider zugewiesen bekommen hat. Die Entwicklungsmaschine ist immer von Ihrem Gerät aus unter 10.0.2.2 erreichbar.

Da Sie nur nach der IP des Emulators gefragt haben, was möchten Sie tun?

139
Matthias

Wenn Sie wirklich möchten, dass die IP Ihrem Emulator zugewiesen wird:

adb Shell
ifconfig eth0

Welches gibt Ihnen etwas wie:

eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast]
31
Derek Shockey

So was:

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;
}

Weitere Informationen finden Sie in den Dokumenten: NetworkInterface .

26
Marcin Gil

Verwenden Sie diese Methode, um eine 100% korrekte IP-Adresse für Ihren Android Emulator zu erhalten

Um die IP-Adresse Ihres Emulators zu erhalten

Gehen Sie zu adb Shell und geben Sie diesen Befehl ein

adb Shell
ifconfig eth0

enter image description here

Nachdem ich diesen Befehl ausgeführt habe, erhalte ich

IP: 10.0.2.15

Maske: 255.255.255.

Welches funktioniert für mich. Ich arbeite auch für eine Netzwerkanwendung.

16
Nikhil Agrawal

Wenn Sie sich auf den lokalen Host Ihres Host-Computers beziehen müssen, z. B. wenn der Emulator-Client einen Server kontaktieren soll, der auf demselben Host ausgeführt wird, verwenden Sie den Alias ​​ 10.0.2.2, um sich auf den Host-Computer zu beziehen Loopback-Schnittstelle. Aus der Sicht des Emulators bezieht sich localhost (127.0.0.1) auf seine eigene Loopback-Schnittstelle. Weitere Details: http://developer.Android.com/guide/faq/commontasks. html # localhostalias

10
mahbub_siddique
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;
}
3
den