diff --git a/curl.go b/curl.go index 52a3be1..f56bbb2 100644 --- a/curl.go +++ b/curl.go @@ -11,24 +11,27 @@ import ( "time" ) -// Response 结构体用于存储整个JSON响应 +// Response 结构体用于存储整个 JSON 响应 type JSON struct { - Code string `json:"code"` - Data Data `json:"data"` - IP string `json:"ip"` + Code int `json:"code"` + Message string `json:"message"` + Data Data `json:"data"` + TraceID string `json:"traceId"` + Error any `json:"error"` } -// Data 结构体用于存储"data"字段下的详细信息 +// Data 结构体对应 JSON 里的 "data" type Data struct { - Continent string `json:"continent"` - Country string `json:"country"` - Zipcode string `json:"zipcode"` - Owner string `json:"owner"` - Isp string `json:"isp"` - Adcode string `json:"adcode"` - Prov string `json:"prov"` - City string `json:"city"` - District string `json:"district"` + Country string `json:"country"` + Province string `json:"province"` + City string `json:"city"` + ISP string `json:"isp"` + Scene string `json:"scene"` + Company string `json:"company"` + RiskScore string `json:"risk_score"` + HitRiskNum int `json:"hit_risk_num"` + QueryIP string `json:"query_ip"` + Version string `json:"version"` } func isValidIP(ip string) bool { @@ -78,8 +81,7 @@ func curl_(IP_ADDR string) (string, error) { } // 目标 URL - //URL_ADDR = "https://qifu.baidu.com/ip/geo/v1/district?ip=" + IP_ADDR - URL_ADDR = "https://qifu-api.baidubce.com/ip/geo/v1/district?ip=" + IP_ADDR + URL_ADDR = "https://qifu.baidu.com/api/v1/ip-portrait/brief-info?ip=" + IP_ADDR // 创建 HTTP 请求 HTTP_Request, err = http.NewRequest("GET", URL_ADDR, nil) @@ -87,6 +89,8 @@ func curl_(IP_ADDR string) (string, error) { log.Printf("创建请求时出错: %v", err) } + Referer := "https://qifu.baidu.com/?activeKey=SEARCH_IP&trace=apistore_ip_aladdin&activeId=SEARCH_IP_ADDRESS&ip=" + IP_ADDR + // 设置请求头 HTTP_Request.Header.Set("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36") HTTP_Request.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7") @@ -94,8 +98,7 @@ func curl_(IP_ADDR string) (string, error) { HTTP_Request.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8") HTTP_Request.Header.Set("Cache-Control", "max-age=0") HTTP_Request.Header.Set("Connection", "keep-alive") - HTTP_Request.Header.Set("Cookie", "BIDUPSID=04922F7E0DDC6A5B7E0BA15C33FD2176; PSTM=1722408897; BAIDUID=8313999060289847CAE0A6F34A9C4206:FG=1; Hm_lvt_edc762f9f8f5f525fad4770a32b5edda=1724987641; Hm_lvt_28a17f66627d87f1d046eae152a1c93d=1724987645; AGL_USER_ID=186badbd-dd36-4d39-89f4-8d2aa7a01414; BDUSS=1pvWmdhYThIelRSS1NuQkJESHNYV0REcG9teXMxOW9VaURTU2tyRlZTZ3Z4dmhtRVFBQUFBJCQAAAAAAAAAAAEAAADGRkRexaPT8cHrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC850WYvOdFmM") - HTTP_Request.Header.Set("Host", "qifu-api.baidubce.com") + HTTP_Request.Header.Set("Host", "qifu.baidu.com") HTTP_Request.Header.Set("Sec-Ch-Ua", `"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"`) HTTP_Request.Header.Set("Sec-Ch-Ua-Mobile", "?1") HTTP_Request.Header.Set("Sec-Ch-Ua-Platform", `"Android"`) @@ -104,6 +107,7 @@ func curl_(IP_ADDR string) (string, error) { HTTP_Request.Header.Set("Sec-Fetch-Site", "none") HTTP_Request.Header.Set("Sec-Fetch-User", "?1") HTTP_Request.Header.Set("Upgrade-Insecure-Requests", "1") + HTTP_Request.Header.Set("Referer", Referer) // 创建 HTTP 客户端并设置超时时间 HTTP_CLIENT = &http.Client{Timeout: 10 * time.Second} @@ -142,10 +146,10 @@ func curl_(IP_ADDR string) (string, error) { } // 确保数据有效 - if HTPP_JSON.Code != "Success" { - log.Printf("返回数据不符合预期: %s", HTPP_JSON.Code) - return "", fmt.Errorf("返回数据不符合预期: %s", HTPP_JSON.Code) + if HTPP_JSON.Message != "success" { + log.Printf("返回数据不符合预期: %d", HTPP_JSON.Code) + return "", fmt.Errorf("返回数据不符合预期: %d", HTPP_JSON.Code) } - return fmt.Sprintf("%s%s", HTPP_JSON.Data.Continent, HTPP_JSON.Data.Country), err + return fmt.Sprintf("%s%s", HTPP_JSON.Data.Country, HTPP_JSON.Data.Province), err } diff --git a/denyip b/denyip index 29d0421..068d065 100644 Binary files a/denyip and b/denyip differ