2008-08-29 10 views
24

मैं किसी विशेष वेबसाइट तक पहुंचने के लिए उपयोग किए जाने वाले नेटवर्क इंटरफ़ेस के ईथरनेट पते को पुनर्प्राप्त करना चाहता हूं।जावा का उपयोग करके ईथरनेट पता कैसे प्राप्त करें?

जावा में यह कैसे किया जा सकता है?

समाधान ध्यान दें कि getHardwareAddress के स्वीकार किए जाते हैं समाधान ही उपलब्ध जावा 6. में वहाँ मैं क्रियान्वित (च | पी) से अलग जावा 5 के लिए एक समाधान हो प्रतीत नहीं होता है confing।

उत्तर

17

java.net.NetworkInterface.getHardwareAddress

(विधि जावा 6 में जोड़ा) यह मशीन आप में रुचि रखते हैं पर बुलाया जाना है - मैक नेटवर्क सीमाओं (अर्थात लैन और वैन) भर में स्थानांतरित नहीं किया जाता। यदि आप ग्राहकों से पूछताछ करने के लिए वेबसाइट सर्वर पर इसका उपयोग करना चाहते हैं, तो आपको एक ऐपलेट चलाने की ज़रूरत होगी जो आपको परिणाम की रिपोर्ट करेगा।

जावा 5 और पुराने के लिए मुझे कोड parsing output of command line tools on various systems मिला।

+0

मुझे लगता है कि अधिक से अधिक सही लगता है * "नेटवर्क सीमाओं के पार" * है * "भर में नेटवर्क सेगमेंट "* – m0skit0

3

आप पता आपके ServerSocket http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses()

का उपयोग कर लेकिन अगर आपके ग्राहक एक नेट के माध्यम से कनेक्ट कर रहा है से कनेक्ट होता है प्राप्त कर सकते हैं, तो आप रूटर के पते और नहीं ईथरनेट पता मिल जाएगा। यदि यह आपके स्थानीय नेटवर्क पर है (एक हब/स्विच के माध्यम से, एनएटी के साथ कोई राउटर नहीं) तो यह उद्देश्य के रूप में काम करेगा।

2

वास्तव में, अन्य सही उत्तरों (जेडीके 6; निष्पादन 'ifconfig') से परे, जेएनआई-आधारित पुस्तकालय हैं। Java Uuid Generator (JUG) 2.0 में कुछ प्लेटफ़ॉर्म के लिए कोड है। इस JDK 1.2 पर काम करता है और इसके बाद के संस्करण में कम से कम (भी हो सकता है 1.1)