2015-09-18 14 views
0

什麼情況下返回值是真的?Java networkinterface.isVirtual()方法總是返回值爲false?

謝謝大家!

public class Test1 { 

    public static void main(String[] args) { 
     try { 
      Enumeration<NetworkInterface> networkInterface = NetworkInterface 
        .getNetworkInterfaces(); 
      while (networkInterface.hasMoreElements()) { 
       NetworkInterface eachNetworkInterface = networkInterface 
         .nextElement(); 
       System.out.println(eachNetworkInterface.getName() + " " 
         + eachNetworkInterface.isVirtual()); 
      } 
     } catch (SocketException e) { 
      e.printStackTrace(); 
     } 

    } 

} 

打印結果全部爲假! 爲什麼??如何打印真實?

+0

如果網絡接口發現它會打印接口名稱和空格「」,並且它是虛擬的還是現在的(這可能是真的或假的).. – MarmiK

+0

怎樣才能打印真值? – Gaohongyan

回答

3

根據javadocs

返回此接口是否是虛擬接口(也稱爲子接口 )。在某些系統上,虛擬接口是作爲物理接口的子設備創建的接口 ,並且設置了不同的 設置(如地址或MTU)。通常該接口的名稱將會是 父節點的名稱後面跟冒號(:)和 ,用於標識子節點,因爲可能會有幾個虛擬接口連接到單個物理接口。

如果你得到所有的false,那只是說你的系統中沒有創建子接口。

+0

amila如何創建子接口?接下來讓我打印值爲真,謝謝! – Gaohongyan

+0

在Windows中,您可以使用添加硬件嚮導來安裝「Microsoft Loopback Adapter」。 – Amila

+0

Amila,我安裝了「回送適配器」,但打印結果也是錯誤的。 – Gaohongyan