JS获取计算机mac地址以及IP的实现方法


在JavaScript中直接获取计算机的MAC地址是不被允许的,因为JavaScript主要运行在浏览器环境中,出于安全和隐私的考虑,浏览器不提供直接访问本地硬件信息的API。然而,你可以通过一些间接的方法在Node.js环境下获取MAC地址,因为Node.js允许你访问系统级的API。

对于IP地址,JavaScript(在浏览器和Node.js中)可以获取到当前机器的公网IP地址(通过第三方API),但无法直接获取到内网IP地址(尽管在Node.js中可以通过一些网络模块间接获取)。

### Node.js中获取MAC地址

在Node.js中,你可以使用`os`模块来尝试获取网络接口的信息,但请注意,这通常只会返回网络接口的名称,而不一定是MAC地址。要获取MAC地址,你可以使用`node_macaddress`这样的第三方库。

首先,你需要安装`node_macaddress`:


npm install node_macaddress

然后,在Node.js脚本中,你可以这样使用它:


const macaddress = require('node_macaddress').one;

// 获取第一个网络接口的MAC地址
const mac = macaddress();

console.log('MAC Address:', mac);

### JavaScript(浏览器)中获取IP地址

在浏览器中,你不能直接获取内网IP地址,但你可以通过一些第三方API来获取公网IP地址。以下是一个简单的示例,展示如何使用`fetch` API来请求一个公网IP地址服务:


fetch('https://api.ipify.org?format=json')
  .then(response => response.json())
  .then(data => {
    console.log('Your public IP address is:', data.ip);
  })
  .catch(error => console.error('Error fetching IP address:', error));

请注意,上述方法仅适用于获取公网IP地址。在浏览器环境中,出于安全和隐私的考虑,内网IP地址通常是不可访问的。

希望这能满足你的需求!