2016-03-19 49 views
0

我已将我的电脑连接到路由器,而我的android设备无线连接到同一路由器。以编程方式从android设备获取电脑的IP地址

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

+0

'我已将我的PC连接到有线以太网'。你的意思是你连接你的PC到你的路由器? '而我通过热点与android设备共享PC网络。“你的意思是你的Android设备无线连接到同一台路由器吗? – greenapps

+0

'我需要在Android studio中获得我的PC的IP地址.'。 Android Studio需要一个IP地址?我认为你的设备上的Android应用程序想知道你的PC的IP地址。 – greenapps

+0

'但我的网络设置显示192.168.1.100'。这些是你的电脑的网络设置?你在哪里看到? – greenapps

回答

0

见我要点here

我用它为我的老项目。

+0

现在尝试!!即使这返回192.168.1.103 – MrRobot9

1

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

由于您正在自己的局域网上运行,所以主机名将不会执行,因为没有DNS服务器可以解决它。

所以(1)将是你最简单的路线。当然,你可以存储IP,这样你就不需要每次输入它。

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

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

(有些方法可以在网络上扫描某个端口上侦听的pc,但是这些并不是那么容易编程,而且,如果网络上有多台计算机运行nodejs服务器,则不会有线索哪一个应用程序应该访问。)

相关问题