前言
早前用到一个小巧开源的 IP 归属地查询软件,官方提供了 Dockerfile,使用了一段时间觉得还不错,非常简单便捷。
本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.
部署
docker 启动
由于该项目会在首次启动自动下载 IP 数据库,所以最好通过挂载目录的方式,将数据库目录挂在到本地,避免每次使用时都会先去下载数据库.
值得注意的是由于官方镜像是将其作为一个单次服务,常规情况下启动容器执行一次就会停止,所以加上了-itd
参数确保容器长期存活于后台.后续使用docker exec
的方式来获取IP.
示例创建/root/nali
用于存放数据库,执行以下命令后台启动容器.
docker run -itd --name nali --restart always \
-v /root/nali:/root/.local\
stilleshan/nali
docker 使用
完成上述后台启动容器后,可以执行以下命令来查询IP.
docker exec -it nali /nali 1.1.1.1
# 返回 1.1.1.1 [澳大利亚 APNIC/CloudFlare公共DNS服务器]
还可以以空格分割同时查询多个地址
docker exec -it nali /nali 1.1.1.1 8.8.8.8
结语
更多用法可以参考官方项目查询使用.
本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.
3 条评论
这位博主,您好。在浏览完您的博客文章后,感觉您的博客内容质量非常的好,也达到了加入腾讯云自媒体分享计划的要求。
现诚挚地向您发出邀请,邀请您加入腾讯自媒体分享计划:https://cloud.tencent.com/developer/support-plan?invite_code=347bs58ysckks 。待审核成功入驻后,会在社区后台为您发放相关得腾讯云无门槛代金券以及一些实物奖励。
具体审核细则,请进入页面查看。
root@host:~/git/dock/ip2region# cat docker-compose.yaml
version: '3.5'
services:
ip2:
networks:
default:
curl http://ip2.mi/ip=223.5.5.5
{"CityId":1132,"Country":"中国","Region":"0","Province":"浙江省","City":"杭州市","ISP":"阿里云"}
你这个好,我也介绍一个echoip
docker run -d --restart=always --name echoip -p 1601:1601 dnomd343/echoip
[root@VM-12-8-centos 222]# curl 127.0.0.1:1601/114.114.114.114
IP: 114.114.114.114
AS: AS174
City: 南京
Region: 江苏
Country: CN - China(中国)
Timezone: Asia/Shanghai
Location: 32.04,118.78
ISP: Cogent Communications
Scope: 114.114.114.114/32
Detail: 江苏省南京市南京信风网络科技有限公司GreatbitDNS服务器
容器开启后会自动拉取 qqwry.dat 离线数据库,如果网络较慢可能需要数分钟时间,期间查询信息不完整,且由于容器内部配置了Redis缓存,缓存过期前(默认为一个小时)将一直保持不完整信息,因此务必在确认数据库拉取完成后再执行查询,拉取期间可以用htop等进程管理工具查看docker内部进程,将存在以下信息
sh init.sh
|--sh /var/www/echoIP/backend/qqwryUpdate.sh
在该进程结束后请测试以下命令确认qqwry.dat数据库是否正常
拉取完成shell> curl 127.0.0.1:1601/version
拉取失败echoip -> v1.4
qqwry.dat -> 2021-07-07
ipip.net -> 2019-07-03
shell> curl 127.0.0.1:1601/version
该情况一般出现在国外VPS上,重启容器再次拉取即可echoip -> v1.4
qqwry.dat -> --
ipip.net -> 2019-07-03
若服务器1601端口未配置防火墙,在浏览器输入 http://服务器IP:1601/ 即可访问echoIP页面。
测试容器是否正常工作shell> curl 127.0.0.1:1601/8.8.8.8
···8.8.8.8的详细信息···
访问网页还有图像,感兴趣的可以尝试下OωO