【发布时间】:2013-08-04 02:20:35
【问题描述】:
我怎样才能获得我的计算机的外部 IP,只使用 Java,而不联系如下任何网站:
String ip = "";
try
{
URL whatismyip;
whatismyip = new URL("http://checkip.amazonaws.com");
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
ip = in.readLine();
} catch (UnknownHostException e)
{
e.printStackTrace();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
我不希望这样的原因是,如果这个网站即使关闭一天,我也会遇到大问题。
编辑:
把问题定义得更清楚一点:Java有没有获取用户机器IP的方法,如果有,它们是什么?
【问题讨论】:
-
有办法只使用 Java 来做到这一点吗?我看到获取本地IP简单易行,但是只能通过这种方式获取外部IP(Internet)?
-
"如果有一天这个网站宕机,我会遇到很大的问题。" - 您的问题不清楚 - 您是否正在尝试获取正在运行您的程序的计算机的 IP?或者您是否尝试获取连接到您的网站(服务器)的计算机的 IP 地址?
-
"获取你的 PC的外部IP" 我的外部IP地址是192.168.0.12
-
您使用的是什么操作系统?我知道一些避免发出 HTTP 请求的仅限 Linux 的方法。
-
@acdcjunior @ Steve P. 不要认为这是重复的问题,因为我的目的是看看是否有另一种方法可以做到这一点,而不仅仅是那种方式。但对不起,如果重复是:)