Anonymous user
Module:IP: Difference between revisions
From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
more tweaks
(use strings for protocol version numbers) |
(more tweaks) |
||
Line 11:
local IPAddress = {}
do
-- Initialize metatable
local mt = {}
-- Constructor
function IPAddress.new(ip)
-- Set up structure
local obj = setmetatable({}, mt)
local data = {}
-- Private methods
local function lexIPv4(s)
end
-- Public methods
function obj:getIP()
return data.ip
end
data.ip = ip
return data.version
return
end
function obj:isIPv6()
return data.version == 'IPv6'
end
function obj:isInRange(range)
return false
end
-- Set initial values
obj:setIP(ip)
data.version = 'IPv4'
return obj
end
-- Metamethods
function mt:__eq(obj)
return false
Line 47 ⟶ 66:
function mt:__tostring()
return
end
end
Line 60 ⟶ 77:
local IPRange = {}
do
-- Initialize metatable
local mt = {}
--
-- Set up structure
local mt = {}
local obj = setmetatable({}, mt)
local data = {}
return
-- Public methods
function obj:getRange()
return tostring(self)
end
if last then
data.startIP = first
data.endIP = last
else
data.startIP, data.endIP = parseIPRange(first)
end
end
return data.startIP
data.startIP = ip
return data.endIP
data.endIP = ip
return data.version
return data.version ==
return
end
function obj:containsIP(ip)
return false
end
-- Set initial values
if not first then
error('no range specified', 2)
end
obj:setRange(first, last)
data.version = 4
return obj
end
-- Metamethods
function mt:__eq(obj)
return false
Line 122 ⟶ 155:
function mt:__tostring()
return
end
end
|