2011-05-19 13 views
8

पर जावा 6 में NetworkInterface.getNetworkInterfaces गणना के क्रम को प्रभावित करें NetworkInterface.getNetworkInterfaces() नेटवर्क इंटरफेस का एक गणना देता है? क्या JVM स्तर या लिनक्स ओएस स्तर पर इसे प्रभावित करने का कोई तरीका है?लिनक्स

+0

गणना एक मूल विधि (ओपनजेडीके 1.6 में) के कॉल के परिणाम पर आधारित है: [getNetworkInterfaces] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/ openjdk/6-b14/जावा/नेट/NetworkInterface.java # NetworkInterface.getNetworkInterfaces% 28% 2 9) –

+0

मुझे आपके प्रश्न का उत्तर नहीं पता, लेकिन मुझे उत्सुकता है कि आप ऑर्डर क्यों बदलना चाहते हैं? – MarcoS

+0

क्या लिनक्स स्तर पर इसे प्रभावित करने का कोई तरीका है? –

उत्तर

5

OpenJDK के स्रोत के अनुसार (src/solaris/native/java/net/NetworkInterface.c में पाया, विधि enumInterfaces) यह IPv6 इंटरफेस (विधि enumIPv6Interfaces) द्वारा पीछा किया आईपीवी 4 पहले इंटरफेस वापस आ जाएगी (विधि enumIPv4Interfaces),।

उन श्रेणियों के भीतर ऑर्डर समान होता है जो ओएस उपयोग करता है (यह SIOCGIFCONF ioctl का उपयोग करता है)।

ध्यान दें कि यह कार्यान्वयन निर्भर है और परिभाषित नहीं है, इसलिए कोई भी कार्यान्वयन इसे आसानी से अलग कर सकता है।

1

यह केवल एक मूल कॉल के लिए प्रतिनिधि है, और नहीं, मुझे इसे बदलने के किसी भी तरीके से अवगत नहीं है।

+1

लेकिन सवाल यह था कि ऑर्डर को कैसे प्रभावित किया जाए, मुझे लगता है कि अगर आपको जवाब नहीं पता है तो जवाब देने का कोई बड़ा कारण नहीं है। –

+0

मेरा मुद्दा यह स्पष्ट रूप से कार्यान्वयन पर निर्भर था, क्योंकि न तो बाहरी javadocs और न ही स्रोत एक विशिष्ट आदेश इंगित करता है। और कोई सिस्टम गुणों का उपयोग/पास नहीं किया गया था। तो हाँ, मुझे लगता है कि मेरे उत्तर – MJB

+0

@Andrey के लिए प्रासंगिकता है - यदि आप चाहते हैं कि लोग आपके प्रश्नों का उत्तर देने के लिए परेशान हों, तो उनके उत्तरों की आलोचना न करें। –

1

यदि आप स्रोतों पर एक नज़र डालते हैं, तो आप देखते हैं कि getNetworkInterfaces केवल गणना दर्ज करें, जो नेटवर्कइंटरफेस सरणी के साथ समर्थित है, जो getAll() विधि, जो देशी है द्वारा लौटाया जाता है। इसलिए, यह कार्यान्वयन निर्भर है और सिस्टम निर्भर है। आप इसके साथ कुछ भी नहीं कर सकते हैं।

+0

लेकिन क्या लिनक्स स्तर पर इसे प्रभावित करने का कोई तरीका है? –