如何理解NetworkInterface和InetAddress的概念?

时间:2014-02-26 17:01:47

标签: java network-programming

我认为在java中,NetworkInterface是网卡的抽象。如果这是正确的,为什么一个NetworkInterface包含多个InetAddress

例如我的macbook中的代码:

NetworkInterface en0 = NetworkInterface.getByName("en0");
Enumeration<InetAddress> adrs = en0.getInetAddresses() ;
while(adrs.hasMoreElements()){
    InetAddress adr = adrs.nextElement();
    System.out.println(adr.getHostAddress());
}

输出:

fe80:0:0:0:7a31:c1ff:feb7:a3a2%4
192.168.1.100

有两个地址,但我没有使用IPv6。

我的问题是,如何理解这两个概念?他们的关系是什么?

1 个答案:

答案 0 :(得分:0)

  

为什么一个NetworkInterface包含多个InetAddress?

因为您可以配置具有多个地址的NIC。大约二十年来一直如此。

  

我没有使用IPv6

有人做了。也许你正在使用DHCP,它来自那里。