NetworkInterface.getNetworkInterfaces()返回网络接口枚举的顺序是什么?有没有办法在JVM级别或
Linux操作系统级别上影响它?
解决方法
根据OpenJDK的源代码(在
src/solaris/native/java/net/NetworkInterface.c
中找到方法enumInterfaces),它将首先返回IPv4接口(方法enumIPv4Interfaces),然后返回IPv6接口(方法enumIPv6Interfaces).
这些类别中的顺序似乎与操作系统使用的顺序相同(它使用SIOCGIFCONF ioctl).
请注意,这是依赖于实现的,未定义,因此任何实现都可以非常容易地以不同方式执行.