【问题标题】:Java get published external IP Address?Java获取发布的外部IP地址?
【发布时间】:2014-01-25 13:09:55
【问题描述】:

我已经浏览了很多 stackoverflow 答案,但没有一个能准确回答我的问题。

我的问题是,我怎样才能获得我的真实互联网外部 IP 地址,而不是本地 IP 地址,而是其他人看到并连接到的我发布的 IP 地址?

例如:84.110.208.20 并不是。 198.168.2.101

目前我正在从 whatismyip.com 汇集 IP 地址,但这需要几秒钟才能获得,因为我必须缓冲读取它。

有没有办法在不从网站读取 ip 的情况下做到这一点?

【问题讨论】:

  • 你有什么样的路由器?您必须连接到路由器,然后提取信息。

标签: java networking ip


【解决方案1】:

我不知道您要求的问题的解决方案,但我尝试了您的解决方案,但我没有得到与您相同的“几秒钟”延迟,因此我决定分享我的解决方案:

public static String getIp() throws IOException{
    URL whatismyip = new URL("http://icanhazip.com");
    BufferedReader in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
    return in.readLine();
}

也许 whatismyip.com 比较慢,或者有更多信息需要解析?

【讨论】:

  • 如您所见,您正在使用阅读器获取 ip,我在问是否可以在不使用任何网站的情况下获取 ip。
  • 并非如此。您必须直接访问防火墙并查询其外部 IP。这可能是不可行的。
猜你喜欢
  • 2011-02-25
  • 2021-11-20
  • 2013-04-03
  • 2016-03-10
  • 2013-08-04
  • 2011-03-16
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多