繁体   English   中英

以编程方式从Android设备获取PC的IP地址

[英]Get IP Address of pc from android device programmatically

我已将PC有线连接到路由器,而android设备已无线连接到同一路由器。

我需要从我的应用程序访问机器上运行的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地址?

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

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

因此(1)将是您最简单的路线。 当然,您可以存储IP,这样就不必每次都键入它。

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

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

(有一些方法可以扫描网络以侦听在某个端口上侦听的PC,但是,编程并不那么容易,而且,如果网络上有多台计算机都在运行Node.js服务器,那么您将不知道该使用哪一个计算机。应用程序。)

在这里看到我的要旨

我将其用于我的旧项目。

这为我工作

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

请勿在清单中授予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"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM