मैक पते में जावास्क्रिप्ट


102

मुझे पता है कि हम IE (ActiveX ऑब्जेक्ट) के माध्यम से उपयोगकर्ता का मैक पता प्राप्त कर सकते हैं।

क्या जावास्क्रिप्ट का उपयोग करके उपयोगकर्ता का मैक पता प्राप्त करने का कोई तरीका है?

जवाबों:


57

मैं पिछले सभी उत्तरों से सहमत हूं कि यह गोपनीयता / सुरक्षा भेद्यता होगी यदि आप सीधे जावास्क्रिप्ट से ऐसा कर पाएंगे। मेरे विचार से दो चीजें हैं:

  • जावा (हस्ताक्षरित एप्लेट के साथ) का उपयोग करना
  • हस्ताक्षरित जावास्क्रिप्ट का उपयोग करना, जो एफएफ (और सामान्य रूप से मोज़िला) में सामान्य जेएस की तुलना में उच्च विशेषाधिकार प्राप्त करता है (लेकिन इसे सेट करना काफी जटिल है)

1
मैं यह जानने के लिए उत्सुक था कि क्या हम मैक एड्रेस या सीरियल नंबर जैसी कोई अनोखी जानकारी प्राप्त कर सकते हैं या जावास्क्रिप्ट के माध्यम से उपयोगकर्ता से ऐसा कुछ प्राप्त कर सकते हैं? या पीसी का नाम?
फ्लेमुर बेकिराज

55

त्वरित और सरल उत्तर नहीं है

जावास्क्रिप्ट काफी उच्च स्तरीय भाषा है और इस तरह की जानकारी तक पहुँच नहीं है।


फिर मैक एड्रेस प्राप्त करने के लिए नमूना कोड प्रदान करने वाले सभी Google खोज परिणाम के बारे में क्या है
चंद्रमा

14
मैंने Google के चारों ओर त्वरित रूप से देखा है और मेरे द्वारा पढ़े गए सभी पृष्ठ IE का एकमात्र समाधान हैं जो ActiveX ऑब्जेक्ट्स का उपयोग करने पर निर्भर थे। यदि आप अन्यथा दिखाने वाला लिंक पोस्ट कर सकते हैं ...
गेटकिलर

25
मुझे वास्तव में नहीं लगता कि "उच्च स्तरीय भाषा" का मैक पते से कोई लेना-देना है, क्योंकि कोई भी सर्वर-साइड प्रोग्रामिंग भाषा आपको एआरपी तालिका तक पहुंचने की अनुमति देती है, यहां तक ​​कि अप्रत्यक्ष रूप से (जैसे एक उपप्रकार के माध्यम से)। मुझे लगता है कि "क्लाइंट-साइड लैंग्वेज" बेहतर काम करेगी ...
kirbyfan64sos

6
कोई कारण नहीं है कि उच्च स्तर की भाषा में निम्न स्तर की हार्डवेयर जानकारी तक पहुंच न हो। इस मामले में ऐसा नहीं होता है क्योंकि यह एक सुरक्षा समस्या होगी।
एनएसएन n

31

नहीं, आपको जावास्क्रिप्ट में मैक पता नहीं मिल सकता है, मुख्य रूप से क्योंकि मैक पते विशिष्ट रूप से चल रहे कंप्यूटर की पहचान करता है, इसलिए यह सुरक्षा भेद्यता होगी।

अब अगर आप सभी की जरूरत है एक अद्वितीय पहचानकर्ता है, तो मेरा सुझाव है कि आप कुछ क्रिप्टोग्राफिक एल्गोरिदम का उपयोग करके खुद को बनाएं और इसे कुकी में संग्रहीत करें।

यदि आपको वास्तव में कंप्यूटर के मैक पते को जानने की आवश्यकता है और आप आंतरिक अनुप्रयोगों के लिए विकसित कर रहे हैं, तो मेरा सुझाव है कि आप ऐसा करने के लिए एक बाहरी घटक का उपयोग करें: फ़ायरफ़ॉक्स के लिए ActiveX, फ़ायरफ़ॉक्स के लिए XPCOM (एक एक्सटेंशन के रूप में स्थापित)।


क्या आप सफारी के लिए एक बाहरी घटक के बारे में जानते हैं?

नहीं। मैं वास्तव में एक बनाने का सुझाव दे रहा था।
विंसेंट रॉबर्ट

आप एक विशिष्ट पहचानकर्ता बनाने का सुझाव कैसे दे रहे हैं? आप इस बात की गारंटी के लिए एक क्रिप्टोग्राफिक एल्गोरिथ्म का उपयोग कैसे करते हैं कि कभी भी उपयोगकर्ता जो इसे अपने मशीन पर चलाता है उसे एक अद्वितीय आईडी मिलती है?
माइकल


7

नहीं। ActiveX ऐसा कर सकता है क्योंकि ActiveX एक छोटा अनुप्रयोग है जो क्लाइंट की मशीन पर चलता है।

मैं कल्पना करूँगा कि जावास्क्रिप्ट के माध्यम से ऐसी जानकारी तक पहुँच सुरक्षा सुरक्षा भेद्यता होगी।


4

यदि यह इंट्रानेट एप्लिकेशन के लिए है और सभी क्लाइंट डीएचसीपी का उपयोग करते हैं, तो आप दिए गए आईपी पते के लिए मैक पते के लिए डीएचसीपी सर्वर को क्वेरी कर सकते हैं।


4

मैं एक ही समस्या के लिए देख रहा था और निम्नलिखित कोड पर ठोकर खाई।

क्लाइंट मैक एड्रेस (वेब) कैसे प्राप्त करें:

क्लाइंट मैक पते को प्राप्त करने के लिए केवल हम जावास्क्रिप्ट और Microsoft के सक्रिय एक्स नियंत्रण पर भरोसा कर सकते हैं। यह केवल IE में काम करता है यदि सक्रिय एक्स IE के लिए सक्षम करता है। चूंकि ActiveXObject फ़ायरफ़ॉक्स के साथ उपलब्ध नहीं है, इसलिए यह फ़ायरफ़ॉक्स के साथ काम नहीं कर रहा है और IE में ठीक काम कर रहा है।

यह स्क्रिप्ट केवल IE के लिए है:

function showMacAddress() {
    var obj = new ActiveXObject("WbemScripting.SWbemLocator");
    var s = obj.ConnectServer(".");
    var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
    var e = new Enumerator(properties);
    var output;
    output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
    output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
    while (!e.atEnd()) {
        e.moveNext();
        var p = e.item();
        if (!p) continue;
        output = output + '<tr bgColor="#FFFFFF">';
        output = output + '<td>' + p.Caption; +'</td>';
        output = output + '<td>' + p.MACAddress + '</td>';
        output = output + '</tr>';
    }
    output = output + '</table>';
    document.getElementById("box").innerHTML = output;
}

showMacAddress();
<div id='box'></div>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.