如何获得Android模拟器的IP地址?

我想通过代码获取当前运行的Android模拟器的IP地址。 如何实现?

只是为了澄清:从你的应用程序,你可以简单地引用模拟器为“localhost”或127.0.0.1。

Webstream量通过您的开发机器路由,所以模拟器的外部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模拟器

获取yoor模拟器的ip地址

转到adb shell并键入此命令

 adb shell ifconfig eth0 

在这里输入图像说明

运行这个命令后,我越来越

IP:10.0.2.15

掩码:255.255.255.0

哪个适合我。 我也在为networking应用程序工作。

如果您需要引用主机的本地主机,例如当您希望仿真器客户端与运行在同一主机上的服务器联系时,请使用别名10.0.2.2来引用主机的回送接口。 从模拟器的angular度来看, 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; }