Beeinflussen Sie die Reihenfolge der NetworkInterface.getNetworkInterfaces-Enumeration in Java 6 unter Linux

8

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?

    
Andrey Adamovich 19.05.2011, 08:12
quelle

3 Antworten

5

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.

    
Joachim Sauer 19.05.2011, 08:22
quelle
1

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.

    
Vladimir Ivanov 19.05.2011 08:21
quelle
1

Dies wird einfach an einen nativen Anruf delegiert, und nein, ich bin mir keiner Möglichkeit bewusst, es zu ändern.

    
MJB 19.05.2011 08:19
quelle

Tags und Links