为什么要自己编译,因为可以定制界面和功能; 懒人直接移步官网即可 随着agent一直更新,不知道改了什么,一直看不显示国旗,今天自己手撸了一下地理位置查询的代码 打开service/rpc/nezha.go 找到 LookupGeoIP 方法 直接修改成下面代码编译一下就行
- var clientID uint64
- var err error
- if clientID, err = s.Auth.Check(c); err != nil {
- return nil, err
- }
-
- ip := r.GetIp()
- url := "https://xxxxxx.xx/api/ip?ip=" + ip
- // 发送HTTP POST请求
- resp, err := http.Post(url, "application/json;charset=utf-8", nil)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- resBody, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return nil, err
- }
- var data map[string]interface{}
- // 解析JSON数据
- err = json.Unmarshal(resBody, &data)
- if err != nil {
- return nil, err
- }
- //下面的data根据自己接口返回商的内容定义
- resData := data["data"].(map[string]interface{})
- var location = strings.ToLower(resData["countryId"].(string)) // 将地区码写入到 Host
- singleton.ServerLock.RLock()
- defer singleton.ServerLock.RUnlock()
- if singleton.ServerList[clientID].Host == nil {
- return nil, fmt.Errorf("host not found")
- }
- singleton.ServerList[clientID].Host.CountryCode = location
-
- return &pb.GeoIP{Ip: ip, CountryCode: location}, nil
复制代码
|