如何从任何地方访问我的设备的IP地址?

时间:2015-06-03 17:35:38

标签: java android ip-address portforwarding

我正在开发一个向其他手机发送消息的应用。在某种程度上有点像聊天信使。 我的应用程序应该工作的方式是用户输入IP地址和消息,应用程序将消息发送到指定的IP地址。 我目前在同一个应用程序中使用服务器和客户端。这样,任何电话都可以连接到任何其他电话,因为每个电话都有自己的独立服务器,可通过设备的IP地址访问。但是,我无法连接到不在我的LAN上的IP地址。 我想知道如何让服务器从未连接到LAN的设备接收消息?

我读到有关端口转发的信息,这似乎是一个很好的解决方案,但安全风险并不令人鼓舞。我还在考虑使用公共IP地址(例如亚马逊的Web服务器)来运行我的服务器,并且可以从世界各地访问IP地址。唯一的问题是服务器如何知道将消息发送到哪个设备?

1 个答案:

答案 0 :(得分:1)

正在收听传入消息的“服务”需要公开 可寻址的IP地址。地址在下面列出的范围内 被称为私人,无法“全球”到达。它们是您所在地区的私人网站。

192.168.0.0 - 192.168.255.255(65,536个IP地址)
172.16.0.0 - 172.31.255.255(1,048,576 IP地址)
10.0.0.0 - 10.255.255.255(16,777,216 IP地址)

更多的“服务”IP地址可以在NAT防火墙后面, 这意味着您的“服务”IP地址似乎是公开的 不公开。 NAT是将IP转换为另一个IP地址的地方。 这通常发生在互联网服务提供商或电信网络运营商处。

他们解决这个难题的方法是拥有一个公共可寻址服务器 某个托管公司的某个地方,用它来路由你的消息。

每个移动客户端都可以连接到此服务器并获取可能与用户电子邮件地址绑定的标识符。注册后,移动客户端可以要求服务器为该特定用户排队一些消息。

也可以通过这种方式将Google Cloud消息传递作为传递机制 可以唤醒移动客户端从服务器收集消息。 或者消息甚至可以在推送消息中。

相关问题