आप नेटवर्क इंटरफेस प्राप्त करने के लिए java.net.NetworkInterface.getNetworkInterfaces का उपयोग कर सकते हैं, और मैक पता प्राप्त करने के लिए getHardwareAddress() पर कॉल कर सकते हैं।
आप if.isLoopBack() (जहां "अगर" इंटरफ़ेस ऑब्जेक्ट है) के साथ लूपबैक फ़िल्टर करना चाहते हैं। किसी भी इंटरफ़ेस को फ़िल्टर करें जहां if.getHardwareAddress() शून्य देता है। फिर एक उठाओ। आप उन्हें नाम से सॉर्ट कर सकते हैं, if.getName(), और पहले ले लो। आपके उद्देश्यों के लिए यह वास्तव में कोई फर्क नहीं पड़ता कि यह वास्तविक फ़ाइलों का उपयोग करने के लिए उपयोग किया जाने वाला वास्तविक इंटरफ़ेस है या नहीं, बस आप कंप्यूटर को किसी भी तरह पहचान सकते हैं। अंत में अगर .getHardwareAddress() आपको मैक पते के साथ बाइट्स की एक सरणी देता है। यदि आप एक स्ट्रिंग चाहते हैं, तो प्रत्येक बाइट को "% 02x" .format (बाइट) के साथ प्रारूपित करें और उन्हें ":" से विभाजक के रूप में शामिल करें।
जैसा कि किसी अन्य उत्तर में सुझाया गया है, PersistenceService का उपयोग करना बेहतर हो सकता है।
मैक पते का उपयोग करना उपयोगी हो सकता है यदि आप एक ही उपयोगकर्ता के लिए अलग-अलग कंप्यूटरों पर अलग-अलग कंप्यूटर पर अलग-अलग डेटा जारी रखना चाहते हैं, जहां उपयोगकर्ता के पास प्रत्येक कंप्यूटर पर एक ही फाइल/होमडिर्स हैं। आप उस URL के हिस्से के रूप में मैक पते का उपयोग कर सकते हैं जो आप PersistenceService # create() पर पास करते हैं और प्राप्त करते हैं()। उपयोगी यदि आप प्रति-उपयोगकर्ता डेटा के बजाय प्रति-कंप्यूटर डेटा चाहते हैं।
लघु उदाहरण स्काला कोड:
स्रोत
2012-01-12 11:37:24
यदि कोई उपयोगकर्ता अपने मैक पता बदल जाता है जब बार-बार इस प्रतिबंध को नाकाम करने के लिए क्या होता है? –