util.ip: Simplify bitstring method

This commit is contained in:
Kim Alvefur 2017-12-01 04:32:20 +01:00
parent e9e827557b
commit 42e41f583d

View file

@ -6,6 +6,7 @@
--
local net = require "util.net";
local hex = require "util.hex";
local ip_methods = {};
@ -52,24 +53,7 @@ local function new_ip(ipStr, proto)
end
function ip_methods.bits(ip)
ip = (ip.addr):upper();
ip:gsub("([^:]*):?", function (c) fields[#fields + 1] = c end);
if not ip:match(":$") then fields[#fields] = nil; end
for i, field in ipairs(fields) do
if field:len() == 0 and i ~= 1 and i ~= #fields then
for _ = 1, 16 * (9 - #fields) do
result = result .. "0";
end
else
for _ = 1, 4 - field:len() do
result = result .. "0000";
end
for j = 1, field:len() do
result = result .. hex2bits[field:sub(j, j)];
end
end
end
return result;
return hex.to(ip.packed):upper():gsub(".", hex2bits);
end
function ip_methods.bits_full(ip)