有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有一种方法可以根据电话号码从电话中获取WAN IP地址?

我想将两部手机连接在一起,以实现某种P2P风格的连接,当然,要做到这一点,我需要两部手机能够相互通信其IP地址。我一直在玩弄很多关于如何做到这一点的想法,我意识到电话号码是电话的唯一标识符,因此我想知道它是否可以用来获取IP地址

我想我可以通过短信发送某些信息,这些信息会被加密,看起来糟透了,然后被删除,但这将是一个有点黑客和一个非常混乱的方式做事情。我仍然在计划我的项目的这个领域,并愿意接受建议

如果您有任何帮助,我们将不胜感激,提前谢谢您!:0)


共 (4) 个答案

  1. # 1 楼答案

    你会发现一个问题是3G/手机连接没有IP地址。此外,如果您的手机位于路由器后面,则必须在路由器上向前端口以获得P2P连接(而不涉及中央服务器)

    也就是说,如果您想要外部IP地址,那么点击http://www.whatsmyip.org/似乎是最好的方式

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

  2. # 2 楼答案

    你可以使用像www.whatsmyip这样的网站。org获取您的ip地址

    您的手机可能与其他客户端共享其ip地址

    您还可以使用vpn,或者根据您的应用程序使用soup或xmpp的中介服务器

  3. # 3 楼答案

    我很肯定你不能直接这么做。我认为你需要两部手机来将电话号码和IP传输到你自己的服务器上,并通过服务器将所有东西连接在一起。不过,当涉及电话号码时,无论您选择何种解决方案,隐私问题都会悄悄出现

    我也不知道你是否真的可以直接从电话A连接到B,即使你有IP号码?但我还不是一个应用程序开发人员,所以如果你能在phone B上设置一个端点/开放式套接字,你可能会更清楚

  4. # 4 楼答案

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

    发明动态DNS服务是为了让拨号上网(或IP地址经常变化)的用户在其计算机上运行主机名不变的服务器。它的工作方式是,计算机上有一个客户端定期向服务器报告其IP地址,服务器将其放入DNS服务器上指定主机名下的区域文件中。DNS记录的生存时间很短(例如一分钟),因此不会缓存过时的地址信息

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

    您可以运行自己的动态DNS服务器或使用现有的(有很多,一些是免费的)。如果你这样做,我建议你自己经营;然后你可以加入某种身份验证来防止我在评论中提到的隐私问题