feat(core): 添加IP地址检测服务核心功能
- 实现配置文件加载和解析功能,支持服务器、MMDB数据库和日志配置 - 集成GeoLite2城市数据库查询,提供IP地理位置信息查询服务 - 添加私有IP地址检测逻辑,过滤本地网络地址段 - 构建HTTP路由处理器,返回JSON格式的IP位置信息 - 配置默认启动参数和错误处理机制 - 集成日志系统,记录请求处理过程和错误信息
This commit is contained in:
36
cmd/checkip/main.go
Normal file
36
cmd/checkip/main.go
Normal file
@@ -0,0 +1,36 @@
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user