57 lines
1.3 KiB
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)
|
|
}
|