You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统下用Node.js判断当前网络为有线还是无线?

在Windows系统的Electron应用中判断网络连接类型(有线/无线)

在Windows环境下,你可以通过调用系统命令结合Electron的child_process模块来判断当前网络连接是有线还是无线,以下是两种可行方案:

方案1:使用PowerShell命令(推荐,适配新版Windows)

Windows的Get-NetAdapter命令可获取网卡详细信息,其中InterfaceType字段的数值对应不同网络类型:

  • 6:以太网(有线连接)
  • 71:无线局域网(Wi-Fi)

在Electron主进程中执行该命令并解析结果的代码示例:

const { exec } = require('child_process');

function getNetworkConnectionType() {
  return new Promise((resolve, reject) => {
    // 执行PowerShell命令,筛选启用状态的网卡并获取接口类型
    const psCommand = `powershell -Command "Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } | Select-Object -ExpandProperty InterfaceType"`;
    
    exec(psCommand, (error, stdout, stderr) => {
      if (error) {
        reject(new Error(`执行命令失败:${stderr}`));
        return;
      }

      // 解析输出的接口类型数值
      const interfaceTypes = stdout.trim().split('\n').map(type => parseInt(type.trim(), 10)).filter(Boolean);
      
      // 判断连接类型
      if (interfaceTypes.includes(71)) {
        resolve('wireless'); // 存在无线连接
      } else if (interfaceTypes.includes(6)) {
        resolve('wired'); // 存在有线连接
      } else {
        resolve('unknown'); // 无法识别的类型
      }
    });
  });
}

// 调用示例
getNetworkConnectionType()
  .then(type => console.log(`当前网络类型:${type}`))
  .catch(err => console.error(err.message));

方案2:使用WMIC命令(兼容旧版Windows)

WMIC是Windows旧版命令行管理工具,也可查询网卡类型:

const { exec } = require('child_process');

function getNetworkTypeViaWmic() {
  return new Promise((resolve, reject) => {
    const wmicCommand = `wmic nic where "NetEnabled='True'" get AdapterType`;
    
    exec(wmicCommand, (error, stdout, stderr) => {
      if (error) {
        reject(new Error(`执行命令失败:${stderr}`));
        return;
      }

      const output = stdout.trim();
      if (output.includes('802.11')) {
        resolve('wireless');
      } else if (output.includes('Ethernet')) {
        resolve('wired');
      } else {
        resolve('unknown');
      }
    });
  });
}

注意:WMIC在Windows 10 21H1及以后版本已被标记为弃用,优先推荐方案1。

注意事项

  • 若Electron应用打包后出现权限问题,可尝试以管理员身份运行应用(一般查询网卡信息无需管理员权限)。
  • 当同时存在有线和无线连接时,上述代码优先识别无线连接,可根据需求调整判断逻辑。

内容的提问来源于stack exchange,提问作者Pedro Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:23:19