lua高性能IP匹配库ipmatcher

一 、简介

ipmatcher是由api7组织出品的一款高性能IP匹配库,同时支持IPV6及CIDR模式。我们在编写防火墙时常需要对IP匹配黑白名单操作,可以使用该库快速获取到命中信息。

该项目地址:GitHub - api7/lua-resty-ipmatcher: High-performance match IP address for Nginx + Lua

二、使用方法

1.简单匹配IP是否在IP地址列表内:

local ipmatcher = require("resty.ipmatcher")
local ip = ipmatcher.new({
    "127.0.0.1",
    "192.168.0.0/16",
    "::1",
    "fe80::/32",
})

ngx.say(ip:match("127.0.0.1"))
ngx.say(ip:match("192.168.1.100"))
ngx.say(ip:match("::1"))

该操作将返回IP是否存在table内。

2.任意字段的hash table匹配:

local ip, err = ipmatcher.new_with_value({
    ["127.0.0.1"] = {info = "a"},
    ["192.168.0.0/16"] = {info = "b"},
})
local data, err = ip:match("192.168.0.1")
print(data.info) -- the value is "b"

new_with_valu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值