cz88

基于 cz88 纯真IP数据库开发的 IP 解析服务 - 支持 http 协议请求或 rpc 协议请求,也支持第三方包的方式引入直接使用

  • Go 语言编写
  • 进程内缓存结果,重复的 ip 查询响应时间平均为 0.2 ms
  • 支持部署后通过 http 协议或 rpc 协议请求服务
  • 支持第三方包的方式引入直接使用
  • 内置协程数、缓存数、CPU核心数等指标上报(未开放)

czip.txt 文件获取方式

  1. 通过直接安装纯真网络客户端并将其导出为 txt 文件而获得。将其命名为 czip.txt 并放置在根目录下即可
  2. github releases 下载地址:czip.zip 。下载得到 czip.zip,解压得到 czip.txt 并放置在根目录下即可

第三方包引入

```go
package mainimport ("fmt"cz88 "github.com/NuoMinMin/cz88/core"
)func main() {fmt.Println(cz88.GetIpInfo("210.35.117.200"))
}
```

部署方法

编译安装

  1. 安装 golang 环境。建议 go1.13 以上。

  2. 编译运行

    go mod download
    go get github.com/fragmentization/cz88
    go build -o ./cz88 github.com/fragmentization/cz88/cmd
    ./cz88
    

http 协议请求

接口 请求方式 请求字段 说明
/v1/address GET ip 查询 ip 地址相关信息 或 获取访问者自身 ip 地址相关信息(请求字段为空)
/v1/my_address GET 获取访问者自身 ip 地址相关信息

rpc 协议请求

请根据 rpc 客户端语言编译 pb/v1/service.proto 得到 pb 文件

go rpc client demo

func GetIpInfo() (*v1.AddressResp, error) {cc, err := grpc.Dial("127.0.0.1:8108", grpc.WithInsecure())if err != nil {panic(err)}resp, err := v1.NewAppClient(cc).Address(context.TODO(), &v1.AddressReq{Ip: "",})if err != nil {errStatus, _ := status.FromError(err)if errStatus.Code() == codes.Unavailable {return nil, errors.New("No connection could be made because the target machine actively refused it. ")}return nil, errors.New(errStatus.Message())}return resp, nil
}

性能测试

  1. 随机 ip 请求测试中,首次响应时长约 50ms/请求,产生缓存后约 0.2 ms/请求
  2. 本人开发机压测结果如下所示
min@Rytia-Envy13
------------------
OS: Ubuntu 20.04.1 LTS on Windows 10 x86_64
Kernel: 4.4.0-19041-Microsoft
Uptime: 24 mins
Packages: 761 (dpkg)
Shell: zsh 5.8
Terminal: /dev/tty2
CPU: Intel i5-8250U (8) @ 1.800GHz
Memory: 6088MiB / 8038MiB# ab -c 100 -t 10 "http://127.0.0.1:8109/v1/address?ip=210.35.117.200"
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 127.0.0.1 (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Finished 17113 requestsServer Software:
Server Hostname:        127.0.0.1
Server Port:            8109Document Path:          /v1/address?ip=210.35.117.200
Document Length:        114 bytesConcurrency Level:      100
Time taken for tests:   10.041 seconds
Complete requests:      17113
Failed requests:        0
Total transferred:      4073370 bytes
HTML transferred:       1951110 bytes
Requests per second:    1704.25 [#/sec] (mean)
Time per request:       58.677 [ms] (mean)
Time per request:       0.587 [ms] (mean, across all concurrent requests)
Transfer rate:          396.15 [Kbytes/sec] receivedConnection Times (ms)min  mean[+/-sd] median   max
Connect:        0   18  13.8     14      92
Processing:     1   40  20.8     36     197
Waiting:        1   31  17.4     27     180
Total:          1   58  22.8     53     206Percentage of the requests served within a certain time (ms)50%     5366%     6275%     7080%     7690%     9195%    10498%    11699%    123100%    206 (longest request)

基于 cz88 纯真IP数据库开发的 IP 解析服务 - 支持 http 协议请求或 rpc 协议请求,也支持第三方包的方式引入直接使用相关推荐

  1. 关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)—的读后感...

    关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)- 评论 读后感:里面的内容很经典,很实用 读后感:给初学者是好,但是是比较旧的了!VS2003 C/S的 读后感:< ...

  2. 从零开始构建自己的爬虫代理IP数据库并定期检验IP有效性...

    ProxyIPPool 从零开始构建自己的代理IP池:根据代理IP网址抓取新的代理IP:对历史代理IP有效性验证 源码地址:https://github.com/TOMO-CAT/ProxyIPPoo ...

  3. 基于容器的AI系统开发——百度PaddlePaddle解析

    作者来自百度PaddlePaddle团队:王鹤麟.于洋.王益 责编:何永灿(heyc@csdn.net),本文来源于<程序员>,未经允许不得转载. 基于深度学习的AI系统是由深度学习框架. ...

  4. 基于安卓的兼职app开发!深度解析跳槽从开始到结束完整流程,分享PDF高清版

    开头 最近有粉丝反应,不想做安卓了,有朋友转到前端了,安卓不行了,问我怎么办? 自从RN,Weex这种跨平台编程语言出来以后,安卓将死的言论总是不绝于耳.随着颇有摧枯拉朽之势Flutter的出现,加之 ...

  5. java读取纯真IP数据库qqwry.dat的源代码

    java读取纯真IP数据库QQwry.dat的源代码,要运行此程序必须有 到网上下载QQwry.dat,下载地址 http://www.cz88.net/down/   由于太大,我这里就不提供了. ...

  6. 纯真IP数据库的应用!

    前一段时间做了一个 利用纯真IP数据库,根据IP显示地址,并利用google获取地址经纬度,用google maps api 在网页显示IP来源的程序! 1.下载了纯真IP数据库,加压为txt文件后, ...

  7. 纯真IP数据库格式详解

    摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上 找到了一份文档,得以了解其内幕,不过那份文档寥寥 ...

  8. 纯真IP数据库格式详解zt

    摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其内幕,不过那份文档寥寥数 ...

  9. [转]纯真IP数据库格式详解

    纯真IP数据库格式详解 摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其 ...

最新文章

  1. 如何将PPT转换成手机APP
  2. mysql索引组织结构_MySQL中创建及优化索引组织结构的思路(3)
  3. Jupyter Notebook 访问密码重置
  4. POJ - 2828 Buy Tickets(线段树+思维/Splay+模拟)
  5. BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )
  6. spring cloud(2)---微服务写的最全的一篇文章
  7. 讲一个让你们难过很久的故事吧?
  8. linux配置erp访问端口_nginx配置相同端口号访问多个项目
  9. ubuntu播放文件需要MPEG-4 AAC解码器
  10. 1.1.人工智能的概念
  11. Log4j2 CVE-2021-45046 鸡肋RCE漏洞复现与浅析
  12. 新手坐高铁怎么找车厢_坐高铁时如何快速找到自己车票上的车厢和座位! 说出来你都不敢相信...
  13. win2019服务器版游戏性能,微软win10发布2019年03累积更新,修复游戏和鼠标性能卡顿等问题...
  14. 分享---蔡康永情商课201集全
  15. apt-get -yqq install 与apt-get install的区别
  16. 时间序列模型:AR、MA和ARMA
  17. PW6513原装现货
  18. 被误解的C++——法国大革命
  19. HP L380 G9 centos系统安装
  20. 从插件中获取资源的几种方式[总结]_FileLocator

热门文章

  1. ip地址转换数字函数 iton_IP地址转换函数
  2. 设置中转,解决昆仑通态工控软件电脑版无驱动的问题
  3. 全新小龟双端影视1.6壳+反编译视频教程
  4. C#语言实例源码系列-鼠标设置
  5. 计算机机房如何批量重装,全自动网刻工具 — 机房批量安装系统必备
  6. flex builder 4
  7. canvas.drawArc
  8. 一个人从MyIe到FireFox的转变
  9. 揭秘:特步集团副总裁肖利华的亲笔签名感言
  10. 谷歌地图卫星下周发射 分辨率提高至0.5米