Adresele MAC din JavaScript

Știu că putem obține adresa MAC a unui utilizator prin IE (obiecte ActiveX).

Există o modalitate de a obține adresa MAC a unui utilizator folosind JavaScript?

0

6 răspunsuri

Nu puteți să nu obțineți adresa MAC în JavaScript, mai ales pentru că adresa MAC identifică în mod unic computerul care rulează, astfel încât acesta ar fi o vulnerabilitate de securitate.

Acum, dacă tot ceea ce aveți nevoie este un identificator unic, vă sugerez să creați unul folosind un algoritm criptografic și să îl stocați într-un modul cookie.

Dacă într-adevăr aveți nevoie să cunoașteți adresa MAC a computerului și sunteți în curs de dezvoltare pentru aplicații interne, vă sugerăm să utilizați o componentă externă pentru a face acest lucru: ActiveX pentru IE, XPCOM pentru Firefox (instalat ca extensie).

0
adăugat
Nu, de fapt, sugeram să creați unul.
adăugat autor Vincent Robert, sursa
@Michael Wikipedia enumeră mai multe implementări UUID
adăugat autor Vincent Robert, sursa
cum vreți să creați un identificator unic? cum folosiți un algoritm criptografic pentru a garanta că vreodată utilizatorul care rulează pe mașina lor obține un ID unic?
adăugat autor Michael, sursa

Răspunsul rapid și simplu este nr.

Javascript este un limbaj destul de înalt și nu are acces la astfel de informații.

0
adăugat
Am avut o scurtă privire în jurul Google și toate paginile pe care le-am citit erau doar soluții IE care s-au bazat pe utilizarea obiectelor ActiveX. Dacă ați putea posta un link arătând altfel ...
adăugat autor GateKiller, sursa
atunci ce zici de toate rezultatele căutării Google care furnizează coduri eșantion pentru a obține adresa MAC
adăugat autor Moon, sursa
Chiar nu cred că a fi un "limbaj de nivel înalt" are ceva de a face cu adresele MAC, deoarece orice limbaj de programare de pe server vă permite să obțineți accesul la tabela ARP, chiar indirect (de exemplu printr-un subproces). Cred că "limbajul clientului" ar funcționa mai bine ...
adăugat autor kirbyfan64sos, sursa
Nu există niciun motiv pentru care un limbaj de nivel înalt nu ar avea acces la informații hardware de nivel scăzut. În acest caz, acest lucru nu se întâmplă deoarece ar fi o problemă de securitate.
adăugat autor nsn, sursa

Nu. Motivul pentru care ActiveX o poate face este că ActiveX este o mică aplicație care rulează pe mașina clientului.

Mi-aș imagina că accesul la astfel de informații prin intermediul JavaScript ar fi o vulnerabilitate de securitate.

0
adăugat

Dacă aceasta este pentru o aplicație intranet și toți clienții folosesc DHCP, puteți interoga serverul DHCP pentru adresa MAC pentru o anumită adresă IP.

0
adăugat
Cum pot face acest lucru?
adăugat autor Bardo91, sursa

Sunt de acord cu toate răspunsurile anterioare că ar fi o vulnerabilitate de confidențialitate / securitate dacă ați putea face acest lucru direct de la Javascript. Există două lucruri la care mă pot gândi:

  • Utilizarea Java (cu un applet semnat)
  • Folosind Javascript semnat, care în FF (și Mozilla în general) primește privilegii mai mari decât JS normal (dar este destul de complicat să se configureze)
0
adăugat

căutam aceeași problemă și am dat peste codul următor.

Cum se obține adresa MAC a clientului (Web):

Pentru a obține adresa clientului MAC numai în modul în care ne putem baza pe controlul JavaScript și Active X al Microsoft. Este activat numai în IE dacă Active X active pentru IE. Deoarece ActiveXObject nu este disponibil cu Firefox, nu funcționează cu firefox și funcționează bine în IE.

Acest script este numai pentru IE:

<script language="javascript" type="text/javascript">
    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;
    }
</script>
0
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
254 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com

JavaScript jobs România Moldova
JavaScript jobs România Moldova
109 participanți

Pentru confort opriți notificările. Vorbim despre posturi de muncă și freelance, proiecte proprii.