精易论坛

标题: golang写api后端例子 查IP属地的例子 [打印本页]

作者: 小明无敌    时间: 2023-7-29 23:45
标题: golang写api后端例子 查IP属地的例子
本帖最后由 小明无敌 于 2023-7-29 23:53 编辑

得力于go的高性能 配合gin框架 直接写服务端应用 很简单的几句话 就可以实现高性能下载地址 https://wwot.lanzouw.com/itgCO13tonja
刚学go  有什么不对的地方 谢谢指出  
Ip2region  一个查ip位置的例子测试运行的话 直接  main.exe 就创建了本地的服务 端口8082
https://gin-gonic.com/zh-cn/ gin框架
[Golang] 纯文本查看 复制代码
package main

import (
        "encoding/json"
        "fmt"

        "xdb"

        "github.com/gin-gonic/gin"
)

func main() {

        var dbPath = "ip2region.xdb"
        // 1、从 dbPath 加载整个 xdb 到内存
        cBuff, err := xdb.LoadContentFromFile(dbPath)
        if err != nil {
                fmt.Printf("failed to load content from `%s`: %s\n", dbPath, err)
                return
        }

        // 2、用全局的 cBuff 创建完全基于内存的cha询对象。
        searcher, err := xdb.NewWithBuffer(cBuff)
        if err != nil {
                fmt.Printf("failed to create searcher with content: %s\n", err)
                return
        }

        // 备注:并发使用,用整个 xdb 缓存创建的 searcher 对象可以安全用于并发。
        //创建一个服务
        ginserver := gin.Default()
        ginserver.GET("/hello", func(context *gin.Context) {
                context.JSON(200, gin.H{"msg": "hello,world"})

        })
        ginserver.POST("/getip", func(context *gin.Context) {
                data, _ := context.GetRawData()
                var m map[string]interface{}
                _ = json.Unmarshal(data, &m)
                ip := m["ip"]
                strip := ip.(string)
                region, err := searcher.SearchByStr(strip) //cha询Ip位置
                fmt.Println(region, "收到的ip", err)
                if err != nil {

                        context.JSON(201, gin.H{"msg": "ip未找到"})
                }
                context.JSON(200, gin.H{"address": region})

        })

        ginserver.Run(":8082")
}




作者: mimae    时间: 2023-7-30 05:30
不错。试试
作者: qqmqqg    时间: 2023-7-30 06:46
不错。试试
作者: 一指温柔    时间: 2023-7-30 08:47
感谢分享
作者: pipicool    时间: 2023-7-30 18:29
学习一下
作者: 396384183    时间: 2023-7-31 08:59
支持开源~!感谢分享
作者: 奈绪星辰    时间: 2023-7-31 11:53
8888888888888888888888888888
作者: chuanqibuding    时间: 2024-3-29 19:14
看了楼主的帖子,我收获颇丰,不仅学到了新技能,还开拓了眼界,感谢!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4