check_ip/main.go

57 lines
1.3 KiB
Go

package main
import (
"checkIP/modules"
"encoding/json"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
"net/http"
"strings"
)
func main() {
//modules.ImportDatabaseToHex()
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
//测试用ip地址
//ip := "192.168.2.134"
//获取访问浏览器ip
ip := strings.Split(r.RemoteAddr, ":")[0]
//fmt.Println("客户端IP地址:", ip)
if ip == "" {
w.Write([]byte("Invalid IP"))
return
}
if ip != "" {
IPinfo := modules.GetIPInformation(ip)
fmt.Println("IP", IPinfo.IP)
fmt.Println("IsPrivate", IPinfo.IsPrivate)
fmt.Println("PrivateCIDR", IPinfo.PrivateCIDR)
if IPinfo.IsPrivate == true {
w.Write([]byte("Invalid IP"))
return
}
if IPinfo.IsPrivate != true {
//使用mmdb查询ip
IpIformation := modules.MmdbQueryIP(IPinfo.IP)
//使用MySql查询ip
//dsn := modules.Readconfig()
//IpIformation := modules.MysqlQuery(ip, dsn)
log.Println("tag:main", IpIformation)
jsonData, err := json.Marshal(IpIformation)
if err != nil {
fmt.Println("JSON 序列化失败:", err)
return
}
// 设置响应的 Content-Type 为 application/json
w.Header().Set("Content-Type", "application/json")
// 返回 JSON 数据
//log.Println(jsonData)
w.Write(jsonData)
}
}
})
http.ListenAndServe(":8341", nil)
}