web-dev-qa-db-ja.com

Android EmulatorのIPアドレスを取得するには?

現在実行中の Android Emulator のIPアドレスをコードで取得したい。どうすれば達成できますか?

66
Rajapandian

明確にするために、アプリ内から、エミュレータを単に「localhost」または127.0.0.1と呼ぶことができます。

Webトラフィックは開発マシンを介してルーティングされるため、エミュレータの外部IPは、プロバイダーによってそのマシンに割り当てられたIPになります。 10.0.2.2では、開発マシンにデバイスからいつでもアクセスできます。

エミュレータのIPについてのみ尋ねていたので、何をしようとしているのですか?

139
Matthias

エミュレータにIPを本当に割り当てたい場合:

adb Shell
ifconfig eth0

次のようになります:

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

このような:

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

26
Marcin Gil

この方法を使用すると、Android emulator

YoorエミュレータのIPアドレスを取得するには

Adbシェルに移動して、このコマンドを入力します

adb Shell
ifconfig eth0

enter image description here

このコマンドを実行した後、私は

IP:10.0.2.15

マスク:255.255.255.

それは私のために働く。また、ネットワーキングアプリケーションの仕事をしています。

16
Nikhil Agrawal

エミュレータクライアントが同じホストで実行されているサーバーに接続する場合など、ホストコンピューターのローカルホストを参照する必要がある場合は、エイリアス10.0.2.2を使用して参照しますホストコンピューターのループバックインターフェイス。エミュレータの観点から見ると、localhost(127.0.0.1)は独自のループバックインターフェイスを指します。詳細: 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