首页 > 解决方案 > 如何通过 WebRTC 请求获取客户端的 MAC 地址?

问题描述

Firefox 和 Chrome 已经实现了WebRTC,允许向 STUN 服务器发出请求,这些请求将返回客户端的本地 IP 地址。

下面的 javascript 代码输出客户端的本地 IP 地址:

window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;   //compatibility for firefox and chrome
    var pc = new RTCPeerConnection({iceServers:[]}), noop = function(){};      
    pc.createDataChannel("");    //create a bogus data channel
    pc.createOffer(pc.setLocalDescription.bind(pc), noop);    // create offer and set local description
    pc.onicecandidate = function(ice){  //listen for candidate events
        if(!ice || !ice.candidate || !ice.candidate.candidate)  return;
        var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];
        console.log('my IP: ', myIP);   
        pc.onicecandidate = noop;
    };

是否也可以获得MAC地址?

标签: javascriptmacos

解决方案


不,您无法在浏览器中使用 Javascript 获取 MacAdress。有很好的理由。这将是一个很大的安全风险。

MAC地址唯一标识正在运行的计算机,手机......基本上每个设备,内部IP都没有。

如果你想用 Javascript 来做,你需要使用 Electron 或 Node。


推荐阅读