Skip to content

CPE 库Go语言通用平台枚举库

一个用于解析、匹配和管理CPE(通用平台枚举)信息的综合性Go语言库

快速开始

安装库:

bash
go get github.com/scagogogo/cpe

解析CPE字符串:

go
package main

import (
    "fmt"
    "log"
    "github.com/scagogogo/cpe"
)

func main() {
    // 解析CPE 2.3格式
    cpeObj, err := cpe.ParseCpe23("cpe:2.3:a:microsoft:windows:10:*:*:*:*:*:*:*")
    if err != nil {
        log.Fatal(err)
    }
    
    fmt.Printf("供应商: %s\n", cpeObj.Vendor)
    fmt.Printf("产品: %s\n", cpeObj.ProductName)
    fmt.Printf("版本: %s\n", cpeObj.Version)
}

功能特性

🔍 解析和格式化

  • 解析CPE 2.2和2.3格式字符串
  • 从结构化数据生成CPE字符串
  • 验证CPE格式和组件

🎯 匹配和比较

  • 支持通配符的基本CPE匹配
  • 带有模糊逻辑的高级匹配
  • 版本比较和范围匹配
  • 正则表达式匹配

📚 字典支持

  • 解析NVD CPE字典XML
  • 存储和检索CPE字典
  • 搜索和过滤字典条目

🔗 NVD集成

  • 下载和解析NVD CPE数据源
  • 将CPE映射到CVE漏洞
  • 自动数据更新和缓存

💾 存储

  • 基于JSON格式的文件存储
  • 用于测试的内存存储
  • 性能缓存层
  • 可插拔存储接口

🧮 集合操作

  • 创建和管理CPE集合
  • 并集、交集和差集操作
  • 使用高级条件过滤集合

文档

Released under the MIT License.