Ş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?
cevap
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?
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
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
@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. –
: 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.
Ve 'android.permission.INTERNET' iznini unutma –
Bu IP6 adresi, IP4 nasıl elde edilir? –
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;
}
IP öykünücünüzle atanmasını istediğiniz gerçekten yoksa:
size böyle bir şey verecektiradb shell
ifconfig eth0
:
eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast]
bu çok iyi ama bu adres benim pc ping değil :( –
[Luise] (https://stackoverflow.com/users/6066443/louise) dedi: * Derek yöntemini denedim, adb kabuk * içinde ping olabilir. – SmokeDispenser
Bu hatayı 'adb shell': sonra ifconfig: eth0: Bu tür bir aygıtın fikri neden yok? – awavi
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
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
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.
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
@hhh İkinci bağlantı bozuk. :) –
@ 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