所以我有一个正在运行的应用程序,并且在启动时,我希望能够获取IP地址并将其显示为字符串。我一直在使用下面的代码。
String ipAddress = "";
try{
ipAddress = Inet4Address.getLocalHost().getHostAddress();
}
catch(Exception e){
ipAddress = "IP address Cant be used";
}
每次运行它都将返回" IP地址不能使用"所以它会抛出一个错误。
答案 0 :(得分:0)
如果您希望公开面对IP,请查看此answer。简而言之,你无法让公众面对IP,因为网络地址转换不会发生在您的内核中,即您不会将自己的IP分配给自己,而是由于NAT和DHCP而将其提供给您。以下代码向amazons的aws IP API发出请求,以检索您的IP
public static String getIp() throws Exception {
URL whatismyip = new URL("http://checkip.amazonaws.com");
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(
whatismyip.openStream()));
String ip = in.readLine();
return ip;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}