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

使用gopacket与pcap时,无法找到pcap.OpenLive的设备名称

解决pcap.OpenLive设备名称错误(错误码123)

问题根源

错误码123是Windows系统的语法非法错误——wlan0是Linux/macOS的网络设备命名,Windows的设备名格式完全不同,直接套用自然会报错。

解决方法

1. 枚举所有可用网络设备

运行以下代码获取系统里的合法设备名:

package main

import (
	"fmt"
	"github.com/google/gopacket/pcap"
)

func main() {
	devices, err := pcap.FindAllDevs()
	if err != nil {
		fmt.Printf("枚举设备失败: %v\n", err)
		return
	}

	fmt.Println("可用设备列表:")
	for _, d := range devices {
		fmt.Printf("设备名: %s\n", d.Name)
		fmt.Printf("描述: %s\n", d.Description)
		fmt.Println("---------------------------")
	}
}

Windows下的设备名通常是类似\Device\NPF_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}的长字符串,复制这个设备名字段的值即可。

2. 使用正确的设备名调用pcap.OpenLive

把复制到的设备名传入函数,注意用反引号包裹避免转义问题:

handle, err := pcap.OpenLive(`\Device\NPF_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}`, 65536, true, pcap.BlockForever)

额外注意事项

  • Windows系统需提前安装WinPcap或Npcap,且程序必须以管理员权限运行,否则无法枚举或打开设备。
  • 若在Linux/macOS下运行,确保用sudo启动程序,避免权限不足导致的设备访问失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:09