我想通過代碼獲取當前運行的Android Emulator的IP地址。 如何實現?如何獲取Android模擬器的IP地址?
回答
只是爲了澄清:從您的應用程序內,您可以簡單地將模擬器引用爲'localhost'或127.0.0.1。
Web流量通過您的開發機器路由,因此模擬器的外部IP是由您的提供商分配給該機器的任何IP。開發機器總是可以從您的設備到達10.0.2.2。
由於您只詢問仿真器的IP,您要做什麼?
我想爲此贊助100次。我無法弄清楚我的應用程序如何與我運行的另一臺本地服務器交談,直到我閱讀您的文章。謝謝! – Spike 2011-01-08 02:21:10
如何從10.0.2.2到達開發機器?我嘗試了ping,但沒有,圖片[這裏](http://i.stack.imgur.com/Yjv7W.jpg)。 Ifconfig -app在左邊的終端仿真器上試圖ping開發機。在localhost中看不到任何簡單的測試? – hhh 2012-11-05 13:21:09
@hhh您可以嘗試JuiceSSH:https://play.google.com/store/apps/details?id=com.sonelli.juicessh您可以通過提及的IP或主機的真實IP訪問您的主機。兩種變體都適用於我。 – 2015-04-17 15:11:33
像這樣:
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。
並且不要忘記'android.permission.INTERNET'權限 – 2011-03-10 14:28:11
這給出IP6地址,如何獲取IP4? – 2015-08-17 08:48:51
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分配給你的模擬器:
adb shell
ifconfig eth0
,這將給你是這樣的:
eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast]
這太好了,但這個地址不是從我的電腦pinging :( – 2013-08-31 04:26:14
[路易絲](https://stackoverflow.com/users/6066443/louise)說:*我試過德里克方法。它可以在adb shell *內ping。 – SmokeDispenser 2016-03-15 12:47:48
'adb shell'後出現這個錯誤:'ifconfig:eth0:沒有這樣的設備'的一些想法爲什麼? – awavi 2017-06-09 18:58:46
如果您需要參考您的主機的本地主機例如,當您希望仿真器客戶端與運行在同一主機上的服務器聯繫時,請使用別名10.0.2.2來引用主機的回送接口。從仿真的角度來看,本地主機(127.0.0.1)指的是其自身的回送interface.More細節:http://developer.android.com/guide/faq/commontasks.html#localhostalias
使用此方法,你會爲你的Android模擬器會得到100%正確的IP地址
爲了得到yoor模擬器
轉到亞行殼的IP地址,然後輸入以下命令
adb shell
ifconfig eth0
運行此命令後我得到
IP:10.0.2.15
掩碼:255.255.255.0
這對我的作品。我也在爲網絡應用程序工作。
- 1. android模擬器ip地址
- 2. 設置Android模擬器IP地址
- 3. 通過代碼android模擬器獲取pc的ip地址通過代碼android
- 4. 如何獲取IP地址?
- 5. 如何獲取IP地址?
- 6. 獲取虛擬機的IP地址
- 7. 如何獲取服務器IP地址?
- 8. 在Android模擬器上獲取WIFI網絡中的計算機IP地址
- 9. 從Android模擬器的機器IP地址
- 10. 獲取KVM Guest虛擬機IP地址
- 11. 什麼是iPhone模擬器IP地址?
- 12. 如何使用仿真器獲取IP地址的Android
- 13. 獲取IP地址
- 14. 獲取IP地址
- 15. 獲取IP地址
- 16. 在azure ARM模板中獲取虛擬機的IP地址
- 17. 我如何知道我的iPhone模擬器的IP地址?
- 18. Android的Visual Studio模擬器無法確定主機IP地址
- 19. 獲取我的機器C#的虛擬機安裝IP地址
- 20. 如何獲取系統的IP地址
- 21. 如何獲取後端的IP地址?
- 22. 獲取本地IP地址
- 23. 如何獲取Android模擬器的deviceId?
- 24. 獲取ECS容器的IP地址
- 25. 獲取ip地址的值
- 26. 獲取我的IP地址
- 27. 如何在PageMethod中獲取IP地址?
- 28. 如何獲取IP地址[MYSQL]
- 29. 如何獲取全球IP地址?
- 30. 如何僅獲取IP地址/子網
也許相關[這裏](http://stackoverflow.com/questions/7447221/how-to-connect-to-avd)和[這裏](http://stackoverflow.com/questions/13217796/is- Android的AVDS-防火牆不知何故,更被限制成實Android的防火牆)。 – hhh 2012-11-05 13:29:01
@hhh第二個鏈接已損壞。 :) – 2015-04-17 14:57:30
@MuhamedHuseinbašić我覺得這個線程解決了第二個線程中的問題,所以決定刪除它以保持簡單。 – hhh 2015-04-20 13:29:42