java getinterface_谁能解释为什么Java GetNetworkInterfaces在Windows 7上会返回这么多接口...

我一直在使用NetworkInterface.getNetworkInterfaces()

查询我机器上的网络接口.本质上,我正在尝试查找网络接口卡.这些通常称为eth0,eth1等.

它一直在Win XP甚至带有Vista过滤功能的Vista上都表现出色.

我只是注意到在Windows 7的某些配置中,我得到了大量列出的网络适配器.远不止XP和Vista.我只配置了一张卡,但似乎获得了三个不同的网络接口

>英特尔(R)82567LM-3千兆网络连接

>英特尔(R)82567LM-3千兆网络连接-QoS数据包调度程序-0000

>英特尔(R)82567LM-3千兆网络连接-WFP轻型过滤器-0000

为什么在同一件事上有3个不同的观点.

对于WAN MINIPORT,我还有六个条目.

(有关输出,请参见下文)

我可以过滤掉这些,但是经过这么多废话当然会降低性能.有谁知道为什么创建这些条目以及如何最小化它们?

作为我系统上的一个示例,我编写了这样的代码

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.util.Arrays;

import java.util.Collections;

import java.util.Enumeration;

import static java.lang.System.out;

public class ListNetsEx {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Enumeration nets;

try {

nets = NetworkInterface.getNetworkInterfaces();

for (NetworkInterface netint : Collections.list(nets))

displayInterfaceInformation(netint);

} catch (SocketException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {

// TODO Auto-generated method stub

out.printf("Display name: %s\n", netint.getDisplayName());

out.printf("Name: %s\n", netint.getName());

Enumeration inetAddresses = netint.getInetAddresses();

for (InetAddress inetAddress : Collections.list(inetAddresses)) {

out.printf("InetAddress: %s\n", inetAddress);

}

out.printf("Up? %s\n", netint.isUp());

out.printf("Loopback? %s\n", netint.isLoopback());

out.printf("PointToPoint? %s\n", netint.isPointToPoint());

out.printf("Supports multicast? %s\n", netint.supportsMulticast());

out.printf("Virtual? %s\n", netint.isVirtual());

out.printf("Hardware address: %s\n",

Arrays.toString(netint.getHardwareAddress()));

out.printf("MTU: %s\n", netint.getMTU());

out.printf("\n");

}

}

在Windows 7上的输出是

Display name: Software Loopback Interface 1

Name: lo

InetAddress: /0:0:0:0:0:0:0:1

InetAddress: /127.0.0.1

Up? true

Loopback? true

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: []

MTU: -1

Display name: WAN Miniport (SSTP)

Name: net0

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (IKEv2)

Name: net1

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (L2TP)

Name: net2

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (PPTP)

Name: net3

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (PPPOE)

Name: ppp0

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (IPv6)

Name: eth0

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (Network Monitor)

Name: eth1

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (IP)

Name: eth2

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: RAS Async Adapter

Name: ppp1

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: Intel(R) 82567LM-3 Gigabit Network Connection

Name: eth3

InetAddress: /fe80:0:0:0:b1b1:7531:17b1:bf26%11

InetAddress: /172.24.9.148

Up? true

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: [120, 43, -53, 125, -80, 74]

MTU: 1500

Display name: Microsoft ISATAP Adapter

Name: net4

Up? false

Loopback? false

PointToPoint? true

Supports multicast? false

Virtual? false

Hardware address: [0, 0, 0, 0, 0, 0, 0, -32]

MTU: 1280

Display name: Teredo Tunneling Pseudo-Interface

Name: net5

InetAddress: /fe80:0:0:0:e0:0:0:0%13

Up? false

Loopback? false

PointToPoint? true

Supports multicast? false

Virtual? false

Hardware address: [0, 0, 0, 0, 0, 0, 0, -32]

MTU: 1280

Display name: Microsoft ISATAP Adapter #2

Name: net6

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: Intel(R) 82567LM-3 Gigabit Network Connection-QoS Packet Scheduler-0000

Name: eth4

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: Intel(R) 82567LM-3 Gigabit Network Connection-WFP LightWeight Filter-0000

Name: eth5

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000

Name: eth6

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (IP)-QoS Packet Scheduler-0000

Name: eth7

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

Display name: WAN Miniport (IPv6)-QoS Packet Scheduler-0000

Name: eth8

Up? false

Loopback? false

PointToPoint? false

Supports multicast? true

Virtual? false

Hardware address: null

MTU: -1

解决方法:

Windows为内部使用定义了许多接口. Java只是返回OS告诉它的内容,Java都不添加这些内容.

您应该能够在Windows注册表中找到所有这些设备的条目.

标签:network-interface,java,windows-7

来源: https://codeday.me/bug/20191208/2091371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值