Как получить IP-адрес эмулятора Android?



Я хочу, чтобы в настоящее время работает Эмулятор Android'ы IP-адрес через код.
Как этого можно достичь?

497   6  

6 ответов:

просто чтобы уточнить: из вашего приложения вы можете просто обратиться к эмулятору как "localhost" или 127.0.0.1.

веб-трафик маршрутизируется через вашу машину разработки, поэтому внешний IP-адрес эмулятора-это любой IP-адрес, назначенный этому компьютеру вашим поставщиком. Машина разработки всегда может быть доступна с вашего устройства в 10.0.2.2.

Так как вы спрашивали только о IP эмулятора, что ты пытаешься сделать?

Если вы действительно хотите, чтобы IP был назначен вашему эмулятору:

adb shell
ifconfig eth0

, который даст вам что-то вроде:

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

такой:

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

проверьте документы для получения дополнительной информации: NetworkInterface.

используйте этот метод, вы получите 100% правильный ip-адрес для вашего эмулятора android

чтобы получить ip-адрес yoor emulator

перейдите в оболочку adb и введите эту команду

adb shell
ifconfig eth0

enter image description here

после выполнения этой команды я получаю

IP: 10.0.2.15

маска : 255.255.255.0

, который работает для меня . Я также работаю в сети приложение.

Если вам нужно обратиться к локальному хосту вашего компьютера, например, когда вы хотите, чтобы клиент эмулятора связался с сервером, работающим на том же хосте, используйте псевдоним 10.0.2.2 для обращения к интерфейсу обратной связи главного компьютера. С точки зрения эмулятора, localhost (127.0.0.1) относится к своему собственному интерфейсу обратной связи.Подробнее:http://developer.android.com/guide/faq/commontasks.html#localhostalias

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

Comments

    Ничего не найдено.