From 3bd4970d3797836aefb6fcf486e18fb77af35bed Mon Sep 17 00:00:00 2001 From: ibuler Date: Sun, 19 Jun 2016 10:24:53 +0800 Subject: [PATCH] Modify innet function --- init.lua | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index a82ed81..c8bbca0 100644 --- a/init.lua +++ b/init.lua @@ -252,8 +252,28 @@ end -- end function innet(ip, network) - matched = string.match(network, ip) - if match then + local star = '' + for i in string.gmatch(network, '%*') do + star = star..i + end + + local ip = string.split(ip, '%.') + local network = string.split(network, '%.') + if ip == nil or network == nil then + return false + end + + local ip_prefix = {} + local network_prefix = {} + for i=1, 4-string.len(star) do + ip_prefix[i] = ip[i] + network_prefix[i] = network[i] + end + + ip_prefix = table.concat(ip_prefix, '.') + network_prefix = table.concat(network_prefix, '.') + + if ip_prefix == network_prefix then return true else return false