在 JavaScript 中获取 Mac 地址
为了将数据从一台计算机传送到另一台计算机,我们需要一些地址。在计算机网络中,引入了各种地址,每个地址都在不同的层上工作。
例如,媒体访问控制地址是在数据链路层工作的物理地址。本文将讨论 DLL 中的寻址,即 MAC 地址,并演示如何使用 JavaScript 获取用户的 MAC 地址。
MAC 地址
MAC(媒体访问控制)是分配给网络接口控制器的 48 位唯一标识符。它是与每个网络设备相关联的物理地址。
数据链路层使用 MAC 地址将数据包从源路由到其目的地。它在 IEEE 802 标准中分为两个子层:
- 逻辑链路控制 (LLC) 子层
- 媒体访问控制 (MAC) 子层
由于存在数以百万计的网络设备,我们需要唯一地识别每一个设备,因此 MAC 地址在全球范围内都是唯一的。
MAC 地址格式
MAC 地址是 12 位十六进制数(6 字节二进制数),通常以冒号-十六进制表示法书写。OUI(组织唯一标识符*)是 MAC 地址的前 6 位数字(例如,00:40:96)。
IEEE 注册机构委员会将这些 MAC 前缀分配给其注册供应商。以下是一些知名厂商的 OUI:
CC:46:D6 - Cisco
3C:5A:B4 - Google, Inc.
3C:D9:2B - Hewlett Packard
00:9A:CD - HUAWEI TECHNOLOGIES CO.,LTD
制造商将最右边的六位数字分配给网络接口控制器。
如上所述,MAC 地址是用冒号-十六进制格式编写的,但这只是一种转换,并不是必需的。以下任何一种格式都可用于表示 MAC 地址:
在 JavaScript 中使用 ActiveX
对象获取 MAC 地址
我们只能使用 Microsoft 的 ActiveX
对象控件在 JavaScript 中获取用户的 MAC 地址。它只能在 Internet Explorer 上工作,因为 ActiveX
对象在任何其他浏览器中都不可用。
要启用 ActiveX
对象,我们将转到工具并选择 Internet 选项。然后在安全标签页上,我们将单击自定义级别。
我们将继续下去,直到我们看到 Initialize
和脚本 ActiveX 控件未标记为安全。我们将启用它,然后单击确定。
<script type="text/javascript">
var macAddress = "";
var computerName = "";
var wmi = GetObject("winmgmts:{impersonationLevel=impersonate}");
e = new Enumerator(wmi.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
for(; !e.atEnd(); e.moveNext()) {
var s = e.item();
macAddress = s.MACAddress;
computerName = s.DNSHostName;
}
</script>
现在,我们进入编码部分。我们可以将上面的代码添加到 HTML 头部或主体的任何位置,但如果我们选择将其放在主体中,请将其放在下面的代码上方。
在这里,我们将访问 Win32_NetworkAdapterConfiguration
以读取与网络相关的详细信息,例如 MAC 地址、IP 地址和计算机名称。然后,我们可以使用文本框来显示该信息或我们喜欢的任何内容。
<script type="text/javascript">
<input type="text" id="txtMACAdress" />
<input type="text" id="txtComputerName" />
<script type="text/javascript">
document.getElementById("txtMACAdress").value = unescape(macAddress);
document.getElementById("txtComputerName").value = unescape(computerName);
</script>
我们必须确保将声明放在此代码上方以正确显示值。现在,客户端可以看到他们的 MAC 地址显示在屏幕上。
你可以在此链接中找到此问题的完整代码。我们还在下面提供了屏幕截图。
由于明显的原因,此屏幕截图上的输出已被模糊。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。