![](/img/trans.png)
[英]How to make an android app to get the IP address of the pc from my android device connected on same wifi
[英]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.