end
function ip6hostid(val)
- if val and val:match("^[a-fA-F0-9:]+$") and (#val > 2) then
- return (ip6addr("2001:db8:0:0" .. val) or ip6addr("2001:db8:0:0:" .. val))
+ if val == "eui64" or val == "random" then
+ return true
+ else
+ local addr = ip.IPv6(val)
+ if addr and addr:prefix() == 128 and addr:lower("::1:0:0:0:0") then
+ return true
+ end
end
return false
end
function macaddr(val)
- if val and val:match(
- "^[a-fA-F0-9]+:[a-fA-F0-9]+:[a-fA-F0-9]+:" ..
- "[a-fA-F0-9]+:[a-fA-F0-9]+:[a-fA-F0-9]+$"
- ) then
- local parts = util.split( val, ":" )
-
- for i = 1,6 do
- parts[i] = tonumber( parts[i], 16 )
- if parts[i] < 0 or parts[i] > 255 then
- return false
- end
- end
-
- return true
- end
-
- return false
+ return ip.checkmac(val) and true or false
end
function hostname(val)