geosite

package
v0.0.0-...-bb27e5e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2026 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultGeositeURL 默认的 geosite.dat 下载地址
	DefaultGeositeURL = "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat"

	// DefaultUpdateInterval 默认更新间隔(24 小时)
	DefaultUpdateInterval = 24 * time.Hour
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DomainType

type DomainType int32

DomainType 域名类型(与 v2ray-rules-dat protobuf 定义对应)

const (
	DomainTypePlain  DomainType = 0 // 纯字符串匹配(关键词)
	DomainTypeRegex  DomainType = 1 // 正则表达式
	DomainTypeDomain DomainType = 2 // 域名匹配(包含子域名)
	DomainTypeFull   DomainType = 3 // 完全匹配
)

type GeoSiteData

type GeoSiteData struct {
	// contains filtered or unexported fields
}

GeoSiteData GeoSite 数据管理器

func NewGeoSiteData

func NewGeoSiteData() *GeoSiteData

NewGeoSiteData 创建 GeoSite 数据管理器

func (*GeoSiteData) Contains

func (g *GeoSiteData) Contains(tag, domain string) bool

Contains 检查域名是否在指定的 GeoSite 标签中

func (*GeoSiteData) GetStats

func (g *GeoSiteData) GetStats() map[string]any

GetStats 获取统计信息

func (*GeoSiteData) GetTags

func (g *GeoSiteData) GetTags() []string

GetTags 获取所有可用的 GeoSite 标签

func (*GeoSiteData) HasTag

func (g *GeoSiteData) HasTag(tag string) bool

HasTag 检查是否存在指定的标签

func (*GeoSiteData) LoadFromBytes

func (g *GeoSiteData) LoadFromBytes(data []byte) error

LoadFromBytes 从字节数组加载 GeoSite 数据

func (*GeoSiteData) LoadFromFile

func (g *GeoSiteData) LoadFromFile(path string) error

LoadFromFile 从文件加载 geosite.dat

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager GeoSite 管理器

func NewManager

func NewManager(dataDir string) *Manager

NewManager 创建 GeoSite 管理器

func (*Manager) Contains

func (m *Manager) Contains(tag, domain string) bool

Contains 检查域名是否在指定的 GeoSite 标签中

func (*Manager) ForceUpdate

func (m *Manager) ForceUpdate() error

ForceUpdate 强制更新

func (*Manager) GetGeoSiteData

func (m *Manager) GetGeoSiteData() *GeoSiteData

GetGeoSiteData 获取底层 GeoSiteData(用于与 matcher 模块集成)

func (*Manager) GetStats

func (m *Manager) GetStats() map[string]any

GetStats 获取统计信息

func (*Manager) GetTags

func (m *Manager) GetTags() []string

GetTags 获取所有可用的标签

func (*Manager) HasTag

func (m *Manager) HasTag(tag string) bool

HasTag 检查是否存在指定的标签

func (*Manager) SetDownloadURL

func (m *Manager) SetDownloadURL(url string)

SetDownloadURL 设置下载地址

func (*Manager) SetUpdateInterval

func (m *Manager) SetUpdateInterval(interval time.Duration)

SetUpdateInterval 设置更新间隔

func (*Manager) Start

func (m *Manager) Start() error

Start 启动管理器(加载本地文件或下载,并启动自动更新)

func (*Manager) Stop

func (m *Manager) Stop()

Stop 停止管理器

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL