windows 下使用gopacket抓包获取网卡列表信息

准备

  1. 安装gopacket
    go get github.com/google/gopacket/pcap
  2. 安装gcc
    http://tdm-gcc.tdragon.net/download下载gcc,配置gcc就不细说了

  3. 安装winpcapwinpcap develop package
    https://www.winpcap.org/devel.htm下载winpacp4.1.3和开发包4.1.2(没有4.1.3的开发包)

windows 下使用gopacket抓包获取网卡列表信息_第1张图片
解压WpdPack_4_1_2.zip到 C:\WpdPack,一定要这个目录,否则得修改go库里面的代码

测试

这段代码的功能是显示本设备的所有网卡设备信息

package main

import (
    "fmt"
    "log"

    "github.com/google/gopacket/pcap"
)

func main() {
    // Find all devices
    devices, err := pcap.FindAllDevs()
    if err != nil {
        log.Fatal(err)
    }

    // Print device information
    fmt.Println("Devices found:")
    for _, d := range devices {
        fmt.Println("\nName: ", d.Name)
        fmt.Println("Description: ", d.Description)
        fmt.Println("Devices addresses: ", d.Description)

        for _, address := range d.Addresses {
            fmt.Println("- IP address: ", address.IP)
            fmt.Println("- Subnet mask: ", address.Netmask)
        }
    }
}

go run test.go

也可以使用getmac命令获取网卡的传输名称
windows 下使用gopacket抓包获取网卡列表信息_第2张图片

警告

一定不要去这个地方去下载开发包,https://www.winpcap.org/archive/,搞不懂他这里面的版本,下了好几个都不对。

引用

https://blog.csdn.net/worldzhy/article/details/8234584
https://www.devdungeon.com/content/packet-capture-injection-and-analysis-gopacket
https://www.winpcap.org/devel.htm
https://godoc.org/github.com/google/gopacket

你可能感兴趣的:(Golang,Golang学习笔记)