2.查询速度快,支持很多语言的SDK.重点是支持Lua(哈哈,要不然写插件就不开心了).测试了一下,通过把库load到内存的模式,再进行查询. 测试结果一个IP的查询在10微秒左右. 性能是可以接受的,如果性能损耗太大,Kong作为网关入口会造成大量的性能损耗,拖垮业务也是有可能的.
那么现在就很简单了. 思路就是通过Lua编写Kong插件, 拿到客户端的IP地址, 通过ip2region查询到IP的归属地信息,拿到country限定为"中国"、province例如可以排除港澳台, 或者内网IP如192.168.x.x\10.x.x.x等相关IP则允许通过,否则响应403禁止访问即可.
不知道怎么编写Kong插件的,可以参考我之前的博客: 2022最新Kong插件开发教程
过程中还是遇到了一些问题, 例如ip2region提供的lua客户端SDK只支持至少Lua5.3版本开始,因为我看到源码有使用到 << 、>>、&、|等相关位运算符, 但是我们的Kong用的Lua是5.1的,不支持位运算符…,后来通过安装bit2的lua库, 把用到位运算符的地方使用bit32的函数换掉,大功告成!为了验证这样有没有问题, 我使用官方的bench_test测试了几百万的IP输出所有IP的归属地,两者一样,这样确保了是OK的.
三.效果展示
网站全球访问状态测试: http://www.webkaka.com/UrlCheck.aspx
非中国大陆IP访问全部403禁止.
Kong加载到的新插件页面:
Kong配置插件页面:
四.开源地址
找了很多Kong插件,没找到合适的Kong插件来实现这个功能.我把实现的源码进行了开源,有需要的朋友可以参考一下.
项目地址: https://github.com/dream-mo/kong-plugin-ip-region-restriction
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
T行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**