2011-06-10 303 views
1

我想将两部手机连接在一起,以实现某种P2P风格的连接,并且自然而然地这样做,我需要手机能够互相交流其IP地址。我一直在玩弄很多关于如何做到这一点的想法,我意识到一件事是电话号码是手机的唯一标识符,因此我想知道它是否可以用来获取IP地址。有没有办法根据手机号码从手机获取WAN IP地址?

我想我可以通过短信传送某些信息,这些信息会被加密,看起来非常糟糕,然后被删除,但这会有点破坏性,而且做起来非常麻烦。我仍然主要计划我的项目的这个领域,并会接受建议。

任何帮助将不胜感激,谢谢你提前! :0)

回答

2

您可以使用动态DNS服务,使用电话号码作为主机名。换句话说,您只需执行DNS查找4255551212.dyndns.com,你会得到给定电话号码的最后一个已知IP地址。

动态DNS服务是为了让拨号(或经常更改IP地址)的用户在其计算机上运行服务器,并且主机名称没有更改而发明的。它的工作方式是,计算机上有一个客户端,它可以定期将其IP地址报告给服务器,服务器将其置于指定主机名下的DNS服务器上的区域文件中。 DNS记录的生存时间很短(例如一分钟),以避免过时的地址信息被缓存。

有一个Android的动态DNS客户端,在市场上寻找DynDNS并试用它。

您可以运行自己的动态DNS服务器或使用现有的一个(有很多,一些免费)。如果你这样做,我会建议你自己跑;那么你可以包含某种认证来防止我在评论中提到的隐私问题。

+0

*叹*请原谅我的无知,这取决于你的应用程序的中介服务器,但我对网络有点新鲜。你能向我解释这是什么意思吗? – Matt 2011-06-10 19:41:58

+0

或更确切地说,这是如何工作的......我的意思是......它直观地命名为 – Matt 2011-06-10 19:43:05

+0

好的解决方案,这将起作用。 – Fredrik 2011-06-10 19:48:05

1

您会发现一个问题,3G/cell连接不提供IP地址。另外,如果您的手机位于路由器后面,则必须在路由器上进行端口转发才能获得P2P连接(不涉及中央服务器)。

也就是说,如果你想要外部IP地址,看起来http://www.whatsmyip.org/是最好的选择。

注意:我不太了解kindall建议的动态DNS选项。

+0

谢谢,就像我说的,任何帮助表示赞赏。我不知道3G没有提供IP地址......但是,谢谢。 – Matt 2011-06-10 19:48:21

+1

这很有道理,我想3G上网流量必须通过运营商的网关。您将拥有可见的IP地址,但它将成为许多人使用的代理,并且不允许入站流量。至于WiFi路由器,您可以使用STUN,UP&P等获得入站连接,但这会增加很多复杂性。 – kindall 2011-06-10 19:56:39

1

我很确定你不能直接这样做。我认为你需要两部手机才能将电话号码和IP转移到你自己的服务器上,并通过那里把所有的东西绑在一起。当涉及到电话号码时,隐私问题将随着您选择的任何解决方案逐渐增加。

另外我不知道你是否真的可以直接从手机A连接到B,即使你有IP号码?但我还不是App Dev,所以如果你可以在手机B上设置一个端点/开放套接字,你可能会更好。

+0

感谢您的洞察力。我听说协议可能会被阻止,所以连接问题并不令人意外,但我知道有些东西使用P2P作为选项,所以我相当有信心可以找到解决方法。 – Matt 2011-06-10 19:50:46

0

你可以使用www.whatsmyip.org这样的网站来帮助你IP地址

有可能是您的手机共享其与其他客户

IP地址

你也可以使用VPN或用汤或XMPP

相关问题