2014-01-07 262 views
0

我一直在经历这么多的计算器答案,没有准确地回答我的问题。Java获取发布的外部IP地址?

我的问题是,我怎么能得到我真正的互联网外部IP地址,而不是本地的,但我发布的IP地址,其他人看到&连接到?

例如:84.110.208.20 而不是。 198.168.2.101

目前imposing来自whatismyip.com的IP地址,但这需要几秒钟,因为我必须缓冲读取它。

有没有办法做到这一点,而不从网站读取IP?

+0

你有什么样的路由器?你必须连接到你的路由器,并将信息提取出来。 –

回答

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比较慢,或者有更多的信息需要解析?

+0

正如你所看到的,你正在使用读取器来获取IP,我在问是否可以在不使用任何网站的情况下获得IP。 – Artemkller545

+2

不是。您必须直接访问防火墙并查询其外部IP。这可能不可行。 – Paladine