我想将两部手机连接在一起以获得某种P2P风格的连接,当然这样做,我需要手机能够相互通信他们的IP地址。我一直在玩很多关于如何做到这一点的想法,我意识到的一件事是电话号码是电话的唯一标识符,因此我想知道它是否可以用于获取IP地址。
我认为我可以通过短信传输某些信息,这些信息会被加密,看起来很糟糕,然后被删除,但这将是一种黑客行为和一种非常混乱的做事方式。我仍然主要计划我的项目的这个领域,并愿意接受建议。
任何帮助将不胜感激,谢谢你提前! :0)
答案 0 :(得分:2)
您可以使用动态DNS服务,使用电话号码作为主机名。换句话说,您只需进行例如DNS查询即可。 4255551212.dyndns.com
,您将获得给定电话号码的最后一个已知IP地址。
动态DNS服务的发明是为了让拨号(或频繁更改IP地址)的人在其计算机上运行服务器,主机名不会发生变化。它的工作方式是,计算机上有一个客户端定期向服务器报告其IP地址,该服务器将其放在指定主机名下的DNS服务器上的区域文件中。 DNS记录的生存时间很短(例如一分钟),因此不会缓存过时的地址信息。
有一个适用于Android的动态DNS客户端,在市场上寻找DynDNS并试用它。
您可以运行自己的动态DNS服务器或使用现有的DNS服务器(有很多,有些是免费的)。如果你这样做,我会建议自己运行;然后你可以加入某种身份验证来防止我在评论中提到的隐私问题。
答案 1 :(得分:1)
您会发现一个问题是3G /小区连接没有提供IP地址。此外,如果您的手机位于路由器后面,则必须在路由器上进行端口转发以获得P2P连接(不涉及中央服务器)。
也就是说,如果您想要外部IP地址,那么点击http://www.whatsmyip.org/似乎是最好的方式。
注意:我对kindall建议的动态DNS选项了解不多。
答案 2 :(得分:1)
我很确定你不能直接这样做。我认为您需要两部手机才能将电话号码和IP转移到您自己的服务器上,并将所有内容整合在一起。当涉及到phonenumber时,隐私问题会随着您选择的任何解决方案而蔓延。
此外,即使您拥有IP号,我也不知道您是否可以直接从手机A连接到B?但我还不是App Dev,所以如果你能在手机B设置端点/开放式套接字,你可能会更清楚。
答案 3 :(得分:0)
你可以使用像www.whatsmyip.org这样的网站来获取你的IP地址
您的手机可能与其他客户共享其IP地址
你也可以使用vpn或者你的应用程序使用一个使用汤或xmpp的中介服务器