当前位置: 首页 > news >正文

go语言实现IP归属地查询

效果:

实现代码main.go

package mainimport ("encoding/json""fmt""io/ioutil""net/http""os"
)type AreaData 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"`
}type IpData struct {Code string   `json:"code"`Data AreaData `json:"data"`Ip   string   `json:"ip"`
}func main() {var args = os.Argsif len(args) > 1 {for index, val := range args {if index > 0 {fmt.Printf("parsms[%d]: %s\n", index, val)}}} else {fmt.Println("no args ip address to check exp: ./checkip 14.23.36.151")return}//ip := "14.23.36.151"url := fmt.Sprintf("https://qifu-api.baidubce.com/ip/geo/v1/district?ip=%s", args[1])resp, err := http.Get(url)if err != nil {fmt.Printf("Error making request: %v\n", err)return}defer resp.Body.Close()body, err := ioutil.ReadAll(resp.Body)if err != nil {fmt.Printf("Error reading response body: %v\n", err)return}var ipInfo IpDataerr = json.Unmarshal(body, &ipInfo)if err != nil {fmt.Printf("Error parsing JSON: %v\n", err)return}fmt.Printf("Code: %s\n", ipInfo.Code)fmt.Printf("Ip: %s\n", ipInfo.Ip)fmt.Printf("Continent: %s\n", ipInfo.Data.Continent)fmt.Printf("Country: %s\n", ipInfo.Data.Country)fmt.Printf("ZipCode: %s\n", ipInfo.Data.ZipCode)fmt.Printf("Owner: %s\n", ipInfo.Data.Owner)fmt.Printf("Isp: %s\n", ipInfo.Data.Isp)fmt.Printf("Adcode: %s\n", ipInfo.Data.Adcode)fmt.Printf("Prov: %s\n", ipInfo.Data.Prov)fmt.Printf("City: %s\n", ipInfo.Data.City)fmt.Printf("District: %s\n", ipInfo.Data.District)
}

相关文章:

  • 链表面试题6之回文结构
  • HTTP3
  • MYSQL 子查询
  • 解析文件加密软件,文件加密软件是什么?2025最新分享
  • 华为FAT AP配置 真机
  • 集成学习——Bagging,Boosting
  • 计算机网络|| 路由器和交换机的配置
  • 网络服务实训室建设规划设计方案
  • LegoGPT,卡内基梅隆大学推出的乐高积木设计模型
  • sqlmap使用入门
  • Matlab 列车纵向滑模二阶自抗扰算法和PID对比
  • Spring Cache的详细使用
  • 网张实验操作-防火墙+NAT
  • AI赋能安全生产,推进数智化转型的智慧油站开源了。
  • 【Pandas】pandas DataFrame cov
  • n8n 修改或者智能体用文档知识库创建pdf
  • 类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
  • web 自动化之 Unittest 应用:报告装饰器断言
  • 【C++重载操作符与转换】构造函数和复制控制
  • CSS-PureCss样式开发
  • “救护车”半路加价?陕西卫健委已介入,记者调查:黑救护车挤占市场
  • 尊严的代价:新加坡福利体系下的价值困境
  • 马上评丨75万采购300元设备,仅仅终止采购还不够
  • “饿了么”枣庄一站点两名连襟骑手先后猝死,软件显示生前3天每日工作超11小时
  • 被流量绑架人生,《人生开门红》能戳破网络时代的幻象吗
  • 中方代表团介绍中美经贸高层会谈有关情况:双方一致同意建立中美经贸磋商机制