aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/ip.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/util/ip.lua b/util/ip.lua
index 9e668d1b..6ebc023b 100644
--- a/util/ip.lua
+++ b/util/ip.lua
@@ -193,5 +193,20 @@ function ip_methods:scope()
return value;
end
+function ip_methods:private()
+ local private = self.scope ~= 0xE;
+ if not private and self.proto == "IPv4" then
+ local ip = self.addr;
+ local fields = {};
+ ip:gsub("([^.]*).?", function (c) fields[#fields + 1] = tonumber(c) end);
+ if fields[1] == 127 or fields[1] == 10 or (fields[1] == 192 and fields[2] == 168)
+ or (fields[1] == 172 and (fields[2] >= 16 or fields[2] <= 32)) then
+ private = true;
+ end
+ end
+ self.private = private;
+ return private;
+end
+
return {new_ip = new_ip,
commonPrefixLength = commonPrefixLength};