Files
check_ip/internal/config/config.go
wsy182 6df8136e1b feat(core): 添加IP地址检测服务核心功能
- 实现配置文件加载和解析功能,支持服务器、MMDB数据库和日志配置
- 集成GeoLite2城市数据库查询,提供IP地理位置信息查询服务
- 添加私有IP地址检测逻辑,过滤本地网络地址段
- 构建HTTP路由处理器,返回JSON格式的IP位置信息
- 配置默认启动参数和错误处理机制
- 集成日志系统,记录请求处理过程和错误信息
2026-02-02 17:20:51 +08:00

40 lines
675 B
Go

package config
import (
"fmt"
"os"
"gopkg.in/yaml.v3"
)
type Config struct {
Server ServerConfig `yaml:"server"`
MMDB MMDBConfig `yaml:"mmdb"`
Log LogConfig `yaml:"log"`
}
type ServerConfig struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
}
type MMDBConfig struct {
FilePath string `yaml:"filePath"`
}
type LogConfig struct {
Level string `yaml:"level"`
}
func Load(path string) (Config, error) {
var cfg Config
data, err := os.ReadFile(path)
if err != nil {
return cfg, fmt.Errorf("read config: %w", err)
}
if err := yaml.Unmarshal(data, &cfg); err != nil {
return cfg, fmt.Errorf("parse yaml: %w", err)
}
return cfg, nil
}