我有一台路由器,当我使用以下命令询问我的IP地址时: InetAddress.getLocalHost().getHostAddress();然后我得到了我的内部IP地址。当我进入网络上的www.whatismyip.com页面时,我得到了另一个IP地址,那就是我的真实地址。
我如何在Java中询问这个真实的IP地址?
谢谢..。
发布于 2018-05-14 04:55:47
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这是我的结果。
发布于 2017-04-18 02:37:32
也许就像这样?
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");https://stackoverflow.com/questions/43457209
复制相似问题