2009-11-12 80 views
57

Şu anda Android Emulator adresinin IP adresini şu anda çalıştırmak istiyorum. Nasıl elde edilebilir? Bunun gibiAndroid Emulator'un IP adresi nasıl alınır?

+1

Belki ilgili [burada] (http://stackoverflow.com/questions/7447221/how-to-connect-to-avd) ve [burada] (http://stackoverflow.com/questions/13217796/is- android-AVDS-güvenlik duvarı-nasılsa-daha-sınırlandırılmış to-gerçek android-firewall). – hhh

+0

@hhh İkinci bağlantı bozuk. :) –

+1

@ MuhamedHuseinbašić Ben bu iş parçacığı ikinci iş parçacığında sorunu çözdüm, bu yüzden işleri basitleştirmek için onu silmeye karar verdim. – hhh

cevap

119

Netleştirmek için: uygulamanızın içinden, öykünücüyü 'localhost' veya 127.0.0.1 olarak kullanabilirsiniz.

Web trafiği, geliştirme makinenizden yönlendirilir; bu nedenle, emülatörün dış IP'si, sağlayıcınız tarafından bu makineye hangi IP tarafından atanmış olursa olsun. Geliştirme makinesine her zaman cihazınızdan 10.0.2.2'de ulaşılabilir.

Sadece öykünücüsü IP hakkında soru sorduğunuz için ne yapmaya çalışıyorsunuz?

+6

Bunun için size 100 kez tekrar etmek istiyorum. Uygulamam mesajınızı okuyana kadar yayınladığım başka bir yerel sunucuyla nasıl konuşabileceğimi anlayamadım. Teşekkürler! – Spike

+0

Geliştirme makinenize 10.0.2.2'den nasıl ulaşabilirsiniz? Ping yapmayı denedim ama hiçbir şey, pic [burada] (http://i.stack.imgur.com/Yjv7W.jpg). Soldaki makinede sağa ve terminal-emülatörüne ifconfig -app dev-machine ping deniyor. Localhost'ta hiçbir şey göremiyor musunuz, basit testler var mı? – hhh

+0

@hhh JuiceSSH'yi deneyebilirsiniz: https://play.google.com/store/apps/details?id=com.sonelli.juicessh Ev sahibinize söz konusu IP adresinden veya sunucunun gerçek IP'sinden ulaşabilirsiniz. Her iki değişken de benim için çalışıyor. –

25

: Daha fazla bilgi için

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

Kontrol docs: NetworkInterface.

+4

Ve 'android.permission.INTERNET' iznini unutma –

+2

Bu IP6 adresi, IP4 nasıl elde edilir? –

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

IP öykünücünüzle atanmasını istediğiniz gerçekten yoksa:

size böyle bir şey verecektir
adb shell 
ifconfig eth0 

:

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

bu çok iyi ama bu adres benim pc ping değil :( –

+0

[Luise] (https://stackoverflow.com/users/6066443/louise) dedi: * Derek yöntemini denedim, adb kabuk * içinde ping olabilir. – SmokeDispenser

+0

Bu hatayı 'adb shell': sonra ifconfig: eth0: Bu tür bir aygıtın fikri neden yok? – awavi

7

Eğer ana bilgisayarın localhost başvurmak gerekiyorsa Örneğin, emülatör istemcisinin aynı ana bilgisayarda çalışan bir sunucuyla iletişim kurmasını istediğinizde, ana bilgisayarın geridöngü arabirimine başvurmak için 10.0.2.2 adını kullanın. öykünücüsü'nın perspektifinden, localhost (127.0.0.1) Gönderen kendi geri döngü interface.More ayrıntıları belirtmektedir: http://developer.android.com/guide/faq/commontasks.html#localhostalias

12

kullanın size android emülatör% 100 doğru ip adresi elde edilecektir bu yöntem

bu komutu yoor emülatörü adb kabuk

git ip adresini almak ve yazmak için

adb shell 
ifconfig eth0 

enter image description here

Bu komutu çalıştırdıktan sonra ben

IP alıyorum: 10.0.2.15

Maskesi: 255.255.255.0 benim için çalışıyor

. Ayrıca bir ağ uygulaması için çalışıyorum.