正常应该通过InetAddress.getLocalHost().getHostAddress();就能获取了。
可是安装VirtualBox后获取的IP地址却是VirtualBox的虚拟机Ip:192.168.56.1,
不是我的本机IP:192.168.0.101。网上查的有人说用for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) {
        //也许 networkInterface.isVirtual() 能帮助获取正确的IP
    }还有人说用NetworkInterface.getHardwareAddress()获取MAC地址来排除虚拟机IP。我对网络结构不是很清楚,所以求高手指点。

解决方案 »

  1.   

    虚拟机不知道宿主机的任何东西。
    可以在虚拟机如vmware的设置里改虚拟网卡的地址和你的主机里的一样。
    MAC地址在vmware里也能改的。
      

  2.   

    虚拟机的默认MAC都是有标准的,如:
    Company and Products MAC unique identifier (s)
    Virtual Iron 4 00-0F-4B
    Red Hat Xen 00-16-3E
    Oracle VM 00-16-3E
    XenSource 00-16-3E
    Novell Xen 00-16-3E
    Sun xVM VirtualBox 08-00-27
    不过我只想知道怎么获取我想要的IP地址,有人知道怎么实现么?
      

  3.   

    虚拟机与本机是相对独立的,除非在虚拟网卡上做配置,否则,要获取本机的IP和获取其他电脑的IP是一样的。
      

  4.   

    请问就默认情况下安装VirtualBox后,如何用JAVA获取IP呢?