首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中查询我的外部IP地址

问如何在java中查询我的外部IP地址
EN

Stack Overflow用户
提问于 2017-04-18 02:25:03
回答 2查看 127关注 0票数 0

我有一台路由器,当我使用以下命令询问我的IP地址时: InetAddress.getLocalHost().getHostAddress();然后我得到了我的内部IP地址。当我进入网络上的www.whatismyip.com页面时,我得到了另一个IP地址,那就是我的真实地址。

我如何在Java中询问这个真实的IP地址?

谢谢..。

EN

回答 2

Stack Overflow用户

发布于 2018-05-14 04:55:47

代码语言:javascript
复制
    public class IP {

  public String myOuterIP() {
    return(readIP("http://checkip.amazonaws.com"));
  }

  public String readIP(String url) {
    String ip = "";
    try {
      URL whatIsMyIP = new URL(url);
      InputStreamReader ir =new InputStreamReader(whatIsMyIP.openStream());
      BufferedReader in = new BufferedReader(ir);
      ip = in.readLine();
    } catch (UnknownHostException e) {
      System.out.println("UnknownHostException");
    } catch (MalformedURLException e) {
      System.out.println("MalformedURLException");
    } catch (IOException e) {
      System.out.println("IOException");
    }
    return ip;
  }
}

这就是我的结果和它的作用。网上有一个地址:http://checkip.amazonaws.com这是我的结果。

票数 0
EN

Stack Overflow用户

发布于 2017-04-18 02:37:32

也许就像这样?

代码语言:javascript
复制
import org.apache.commons.io.IOUtils;
import java.io.BufferedInputStream;
import java.net.HttpURLConnection;
import java.net.URL;


URL url = new URL("http://myexternalip.com/raw");

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

InputStream in = new BufferedInputStream(urlConnection.getInputStream());

String externalIP = IOUtils.toString(in, "UTF-8");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43457209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档