一、开通接口 免费IP地址查询服务使用聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/1 注册及开通。 二、使用Go调用接口 package main import
免费IP地址查询服务使用聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/1 注册及开通。
package main
import (
"net/url"
"fmt"
"net/Http"
"io/ioutil"
"encoding/JSON"
)
func main() {
// 接口请求URL
apiUrl := "http://apis.juhe.cn/ip/ipNew"
// 初始化参数
param := url.Values{}
// 配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("ip", "58.215.155.153") // 需要查询的IP地址
param.Set("key", "您在聚合申请的接口请求Key") // 接口请求Key
// 发送请求
data, err := Get(apiUrl, param)
if err != nil {
// 请求异常,根据自身业务逻辑进行调整修改
fmt.Errorf("请求异常:\r\n%v", err)
} else {
var netReturn map[string]interface{}
jsonerr := json.Unmarshal(data, &netReturn)
if jsonerr != nil {
// 解析JSON异常,根据自身业务逻辑进行调整修改
fmt.Errorf("请求异常:%v", jsonerr)
} else {
errorCode := netReturn["error_code"]
reason := netReturn["reason"]
data := netReturn["result"]
if errorCode.(float64) == 0 {
// 查询成功,根据自身业务逻辑进行调整修改
fmt.Printf("查询结果\n国家:%v\n省份:%v\n城市:%v\n运营商:%v\n",
data.(map[string]interface{})["Country"],
data.(map[string]interface{})["Province"],
data.(map[string]interface{})["City"],
data.(map[string]interface{})["Isp"])
} else {
// 查询失败,根据自身业务逻辑进行调整修改
fmt.Printf("查询失败:%v_%v", errorCode.(float64), reason)
}
}
}
}
// get 方式发起网络请求
func Get(apiURL string, params url.Values) (rs []byte, err error) {
var Url *url.URL
Url, err = url.Parse(apiURL)
if err != nil {
fmt.Printf("解析url错误:\r\n%v", err)
return nil, err
}
//如果参数中有中文参数,这个方法会进行URLEncode
Url.RawQuery = params.Encode()
resp, err := http.Get(Url.String())
if err != nil {
fmt.Println("err:", err)
return nil, err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
// post 方式发起网络请求 ,params 是url.Values类型
func Post(apiURL string, params url.Values) (rs []byte, err error) {
resp, err := http.PostFORM(apiURL, params)
if err != nil {
return nil, err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
--结束END--
本文标题: 基于GO的IP地址查询
本文链接: https://lsjlt.com/news/99244.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0