Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的IP地址冲突_Java_Ip Address - Fatal编程技术网

java中的IP地址冲突

java中的IP地址冲突,java,ip-address,Java,Ip Address,我试着用两种不同的方法获取我的计算机的IP地址。第一种方法是只使用谷歌ip地址。第二种方法是用Java运行以下代码: public class YourIPAddress { public static void main(String[] args) { InetAddress ip; try { ip = InetAddress.getLocalHost(); System.out.println(ip); System.out.println("Cur

我试着用两种不同的方法获取我的计算机的IP地址。第一种方法是只使用谷歌
ip地址
。第二种方法是用Java运行以下代码:

public class YourIPAddress {

public static void main(String[] args) {

  InetAddress ip;
  try {

    ip = InetAddress.getLocalHost();
    System.out.println(ip);
    System.out.println("Current IP address : " + ip.getHostAddress());

  } catch (UnknownHostException e) {

    e.printStackTrace();

  }

}

}

Google返回
50.90.142.29
,而Java返回
192.168.0.11
。为什么IP地址会发生这种冲突?

192.160.0.11是专用/内部IP地址,而50.90.142.29是公用/外部IP地址

一个是路由器的外部IP地址。另一个是你的计算机在本地网络上的IP地址。欢迎来到奇妙的NAT世界,这是几乎所有住宅和许多商业网络都是如何建立的。哪个专用IP地址将是我的路由器的地址?路由器上的专用地址可能是192.168.0.1。192.168.0.11可能是您计算机的私有ip,然后是另一个关于此应用的问题(我提出此问题的原因):如果您为向您计算机提交数据的用户制作程序,您(客户)是否需要知道其私有或公共ip地址?如果是公共的,您在Java中如何尽可能简单地获取此类信息?编辑:答案可能是这个问题的公认答案:您需要从servlet获取客户端的远程地址,就像这里的最佳答案一样:request.getRemoteAddr();但也要像响应那样检查代理案例