ฉันรู้ว่าเราสามารถรับที่อยู่ MAC ของผู้ใช้ผ่านทาง IE (วัตถุ ActiveX)
มีวิธีรับที่อยู่ MAC ของผู้ใช้โดยใช้ JavaScript หรือไม่?
ฉันรู้ว่าเราสามารถรับที่อยู่ MAC ของผู้ใช้ผ่านทาง IE (วัตถุ ActiveX)
มีวิธีรับที่อยู่ MAC ของผู้ใช้โดยใช้ JavaScript หรือไม่?
คำตอบ:
ฉันเห็นด้วยกับคำตอบทั้งหมดก่อนหน้านี้ว่ามันจะเป็นช่องโหว่ด้านความเป็นส่วนตัว / ความปลอดภัยหากคุณสามารถทำได้โดยตรงจาก Javascript มีสองสิ่งที่ฉันคิดได้:
คำตอบที่ง่ายและรวดเร็วคือไม่
Javascript เป็นภาษาระดับสูงและไม่มีสิทธิ์เข้าถึงข้อมูลประเภทนี้
ไม่คุณไม่สามารถรับที่อยู่ MAC ใน JavaScript ได้เนื่องจากที่อยู่ MAC ระบุคอมพิวเตอร์ที่ใช้งานโดยไม่ซ้ำกันดังนั้นจึงเป็นช่องโหว่ด้านความปลอดภัย
ตอนนี้ถ้าสิ่งที่คุณต้องการคือตัวระบุที่ไม่ซ้ำกันฉันขอแนะนำให้คุณสร้างตัวเองด้วยตัวเองโดยใช้อัลกอริทึมการเข้ารหัสและเก็บไว้ในคุกกี้
หากคุณต้องการทราบที่อยู่ MAC ของคอมพิวเตอร์จริงๆและคุณกำลังพัฒนาสำหรับแอปพลิเคชันภายในฉันขอแนะนำให้คุณใช้ส่วนประกอบภายนอกเพื่อทำเช่นนั้น: ActiveX สำหรับ IE, XPCOM สำหรับ Firefox (ติดตั้งเป็นส่วนขยาย)
ไม่ เหตุผลที่ ActiveX ทำได้ก็เพราะว่า ActiveX เป็นแอปพลิเคชั่นเล็ก ๆ น้อย ๆ ที่ทำงานบนเครื่องของลูกค้า
ฉันคิดว่าการเข้าถึงข้อมูลดังกล่าวผ่าน JavaScript จะเป็นช่องโหว่ด้านความปลอดภัย
หากนี่เป็นแอปพลิเคชันอินทราเน็ตและไคลเอนต์ทั้งหมดใช้ DHCP คุณสามารถสอบถามเซิร์ฟเวอร์ DHCP เพื่อหาที่อยู่ MAC สำหรับที่อยู่ IP ที่กำหนด
ฉันกำลังมองหาปัญหาเดียวกันและสะดุดกับรหัสต่อไปนี้
วิธีรับที่อยู่ MAC ของไคลเอ็นต์ (เว็บ):
ในการรับที่อยู่ MAC ของไคลเอ็นต์วิธีเดียวที่เราสามารถพึ่งพา JavaScript และ Active X control ของ Microsoft ใช้ได้เฉพาะใน IE หากเปิดใช้งาน Active X สำหรับ IE เนื่องจาก ActiveXObject ไม่สามารถใช้ได้กับ Firefox จึงไม่ทำงานกับ firefox และทำงานได้ดีใน 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>