在Android中获取PC的本地IP地址

时间:2013-03-27 03:00:37

标签: android android-emulator ip-address

我正在PC上的Android模拟器中运行一些Android代码。我想在我的Android代码中获取PC的本地IP地址,不确定这是否可行......

我查了以下帖子 how to get ip address of pc in android emulator through code 但看起来它只能给我PC的公共IP地址。

感谢。

2 个答案:

答案 0 :(得分:0)

通常,应将Android设备或模拟器视为与开发计算机不同的计算机。

如果你想从android模拟器/设备连接到本地计算机,那么这里有2个选项。

  1. 使用将名称指向本地电脑的内部DNS,如果这是您想要的,您甚至可以使用此覆盖“实时”网址。

  2. 使用BuildConfig.DEBUG标志或类似机制在实时和调试URL /资源之间切换

  3. e.g。我在导出时调试实时URL,在测试时调试我使用:

    public final class MyAppConstants
    {
        // url base for all requests to my API
        public static final String BASE_URL;
    
        // auto-switch between live and debug urls based on usage
        static 
        {
            if (BuildConfig.DEBUG)
            {
                URL_BASE = "http://debug.server.com/";
            }
            else
            {
                URL_BASE = "http://live.server.com/";
            }
        }
    }
    

答案 1 :(得分:0)

您可以查看my own answer here以验证您的Android模拟器实例可访问的各种设备的路由:

  

可以使用来自的IP地址10.0.2.2来访问主机   仿真器。

     

这些是从模拟器到达的IP地址:

     
      
  • 10.0.2.1,路由器/网关地址。
  •   
  • 10.0.2.2,主机环回接口的特殊别名(即开发机器上的127.0.0.1)
  •   
  • 10.0.2.3,第一个DNS服务器
  •   
  • 10.0.2.4 / 10.0.2.5 / 10.0.2.6,可选的第二,第三和第四个DNS服务器(如果有)
  •   
  • 10.0.2.15,模拟设备自己的网络/以太网接口
  •   
  • 127.0.0.1,模拟设备自己的环回接口
  •   

包含说明的完整列表可在Android文档“Emulator Networking”中找到。