In welcher Reihenfolge gibt NetworkInterface.getNetworkInterfaces()
eine Aufzählung von Netzwerkschnittstellen zurück? Gibt es eine Möglichkeit, dies auf JVM-Ebene oder auf Linux-OS-Ebene zu beeinflussen?
Laut der Quelle des OpenJDK (gefunden in src/solaris/native/java/net/NetworkInterface.c
, Methode enumInterfaces
) gibt zuerst IPv4-Schnittstellen (Methode enumIPv4Interfaces
) zurück, gefolgt von IPv6-Schnittstellen (Methode enumIPv6Interfaces
).
Die Reihenfolge in diesen Kategorien scheint dieselbe zu sein, die das Betriebssystem verwendet (es verwendet SIOCGIFCONF
ioctl).
Beachten Sie, dass dies implementierungsabhängig ist und nicht definiert ist, sodass jede Implementierung dies sehr leicht anders machen kann.
Wenn Sie sich Quellen ansehen, dann sehen Sie, dass getNetworkInterfaces nur eine Enumeration zurückgibt, die mit einem NetworkInterface-Array unterstützt wird, das von der Methode getAll () zurückgegeben wird, die nativ ist. Es ist also implementierungsabhängig und systemabhängig. Du kannst damit nichts anfangen.
Tags und Links java linux networking jdk1.6