Как получить MAC-адрес клиентского компьютера, используя Angular - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь получить mac-адрес компьютера клиента, когда он нажимает кнопку. (Это только для служебных целей).

Я прочитал несколько SO-ответов и в том, что они упоминали, что мы не можем сделать это с помощью JavaScript, но все еще не удовлетворены ответом.

Однако мне все же удалось получить IP-адрес клиента, используя приведенный ниже код, но, поскольку IP-адрес будет динамическим, я должен проверить MAC-адрес.

Код для получения IP-адреса клиента .

 ngOnInit(){
         this.getUserIP(function(ip){
            console.log(ip)
        });
    }

getUserIP(onNewIP) { //  onNewIp - your listener function for new IPs
            //compatibility for firefox and chrome
            // console.log("onNewIP" , onNewIP);
            // (<any>window).mozRTCPeerConnection 
            var myPeerConnection = (<any>window).RTCPeerConnection || (<any>window).mozRTCPeerConnection  || (<any>window).webkitRTCPeerConnection;
            var pc = new myPeerConnection({
                iceServers: []
            }),
            noop = function() {},
            localIPs = {},
            ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
            key;

            function iterateIP(ip) {
                if (!localIPs[ip]) onNewIP(ip);
                localIPs[ip] = true;
            }

         //create a bogus data channel
         pc.createDataChannel("");

            // create offer and set local description
            pc.createOffer(function(sdp) {
                sdp.sdp.split('\n').forEach(function(line) {
                    if (line.indexOf('candidate') < 0) return;
                    line.match(ipRegex).forEach(iterateIP);
                });

                pc.setLocalDescription(sdp, noop, noop);
            }, noop); 

            //listen for candidate events
            pc.onicecandidate = function(ice) {
                if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
                ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
            };
        }

Почему я хочу получить MAC-адрес

Когдарегистрация пользователя в моем программном обеспечении, позже я хочу, чтобы этот пользователь делал запрос только с этой машины. Поэтому мне нужен MAC-адрес. Разве это не возможно?

...