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

37 lines
781 B
Go

package main
import (
"checkIP/internal/app"
"checkIP/internal/config"
"checkIP/internal/mmdb"
"fmt"
"github.com/sirupsen/logrus"
)
func main() {
cfg, err := config.Load("./configs/config.yaml")
if err != nil {
logrus.WithError(err).Fatal("load config failed")
}
if cfg.Log.Level != "" {
level, err := logrus.ParseLevel(cfg.Log.Level)
if err != nil {
logrus.WithError(err).Fatal("invalid log level")
}
logrus.SetLevel(level)
}
mmdbReader, err := mmdb.New(cfg.MMDB.FilePath)
if err != nil {
logrus.WithError(err).Fatal("init mmdb reader failed")
}
router := app.NewRouter(mmdbReader)
addr := fmt.Sprintf("%s:%d", cfg.Server.Host, cfg.Server.Port)
if err := router.Run(addr); err != nil {
logrus.WithError(err).Fatal("http server failed")
}
}