【问题标题】:Get IP Address of pc from android device programmatically以编程方式从 android 设备获取 pc 的 IP 地址
【发布时间】:2018-09-20 16:01:58
【问题描述】:

我已经将我的电脑有线连接到路由器,而我的安卓设备无线连接到同一个路由器。

我需要从我的应用程序访问在我的机器上运行的 nodejs 服务器。我需要在 Android 应用中检索机器的 IP 地址。

我试过这个代码

    WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
    String ip =  Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
    return ip;

ipconfig 命令显示 192.168.1.100,而在代码中它返回 192.168.1.103 ....如何让它在我的应用程序中获取机器的 IP 地址?

【问题讨论】:

  • I have connected my PC to wired Ethernet network。你的意思是你把你的电脑有线连接到你的路由器吗? whereas I am sharing PC network with android device through hotspot.。您的意思是您将 Android 设备无线连接到同一个路由器?
  • I need to get the IP Address of my PC in Android studio.。 Android Studio 需要什么 IP 地址?我认为您设备上的 Android 应用想知道您 PC 的 ip。
  • But my network settings displays 192.168.1.100。这些是您PC的网络设置吗?你在哪里看到的?
  • 没错,我就是这个意思!!
  • whereas in code its returns 192.168.1.103。如果该代码在您的 Android 设备上运行,那么这就是您的 Android 设备的 ip。

标签: android ip


【解决方案1】:

任何应用都将 (1) 允许用户手动键入它需要访问的服务器的主机名或 IP 地址,或者 (2) 将主机名硬编码到应用中。

由于您是在自己的 LAN 上运行,因此主机名不会,因为没有 DNS 服务器可以解析它。

所以 (1) 对您来说是最简单的方法。当然,您可以存储 IP,这样您就不需要每次都键入它。

您的电脑需要有一个静态 IP,而不是动态 (DHCP) IP。例如,您可以分配 192.168.1.99,因为您的 DHCP 范围似乎从 100 开始。确保您还填写了默认网关,以及至少一个 DNS 服务器。键入“ipconfig /all”(如果是 Windows 电脑)以找出当前值。

如果您的代码不需要灵活,您甚至可以将该 IP 192.168.1.99 硬编码到您的应用中,这样您就无需输入它。

(有一些方法可以扫描网络以查找侦听某个端口的 pc,但这些方法并不容易编程,此外,如果您的网络上有多台机器运行 nodejs 服务器,您将不知道您的应用应该访问哪一个。)

【讨论】:

    【解决方案2】:

    看我的要点here

    我将它用于我的旧项目。

    【讨论】:

      【解决方案3】:

      对我有用

      WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
      String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
      

      不要在 ma​​nifest

      中授予 ACCESS_WIFI_STATE 和其他权限
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      

      【讨论】:

        猜你喜欢
        • 2020-05-06
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 2013-01-27
        • 1970-01-01
        • 1970-01-01
        • 2017-06-28
        • 1970-01-01
        相关资源
        最近更新 更多