Tôi biết rằng chúng ta có thể lấy địa chỉ MAC của người dùng thông qua IE (các đối tượng ActiveX).
Có cách nào để lấy địa chỉ MAC của người dùng bằng JavaScript không?
Tôi biết rằng chúng ta có thể lấy địa chỉ MAC của người dùng thông qua IE (các đối tượng ActiveX).
Có cách nào để lấy địa chỉ MAC của người dùng bằng JavaScript không?
Câu trả lời:
Tôi đồng ý với tất cả các câu trả lời trước rằng đó sẽ là một lỗ hổng bảo mật / riêng tư nếu bạn có thể thực hiện điều này trực tiếp từ Javascript. Có hai điều tôi có thể nghĩ đến:
Câu trả lời nhanh chóng và đơn giản là Không.
Javascript là một ngôn ngữ cấp cao và không có quyền truy cập vào loại thông tin này.
Không, bạn không thể lấy địa chỉ MAC trong JavaScript, chủ yếu là do địa chỉ MAC nhận dạng duy nhất máy tính đang chạy nên nó sẽ là một lỗ hổng bảo mật.
Bây giờ nếu tất cả những gì bạn cần là một số nhận dạng duy nhất, tôi khuyên bạn nên tự tạo một số nhận dạng bằng cách sử dụng một số thuật toán mật mã và lưu trữ nó trong cookie.
Nếu bạn thực sự cần biết địa chỉ MAC của máy tính VÀ bạn đang phát triển các ứng dụng nội bộ, thì tôi khuyên bạn nên sử dụng một thành phần bên ngoài để làm điều đó: ActiveX cho IE, XPCOM cho Firefox (được cài đặt dưới dạng tiện ích mở rộng).
Nếu điều này dành cho một ứng dụng mạng nội bộ và tất cả các máy khách sử dụng DHCP, bạn có thể truy vấn máy chủ DHCP về địa chỉ MAC cho một địa chỉ IP nhất định.
tôi đang tìm kiếm vấn đề tương tự và tình cờ gặp mã sau.
Cách lấy địa chỉ MAC của máy khách (Web):
Để có được địa chỉ MAC của máy khách, chúng ta chỉ có thể dựa vào JavaScript và điều khiển Active X của Microsoft. Nó chỉ hoạt động trong IE nếu Active X kích hoạt cho IE. Vì ActiveXObject không khả dụng với Firefox, nó không hoạt động với firefox và hoạt động tốt trên IE.
Tập lệnh này chỉ dành cho 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>