Modulo:IP validator
Aspetto

Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:IP validator/man (modifica · cronologia)
Sandbox: Modulo:IP validator/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:IP validator/test (modifica · cronologia · Esegui)
Modulo per verificare se una data stringa rappresenta un indirizzo IP valido. Il template corrispondente è Template:IP?.
Le funzioni disponibili sono is_ipv4
, is_ipv6
e is_ip
da usare per convalidare, rispettivamente, secondo lo standard IPv4, IPv6 o uno dei due indistintamente. Non è prevista la convalida di IPv4-mapped address né di IPv4-compatible address.
Di seguito alcuni esempi d'uso:
Funzione | Stringa da analizzare | Codice da usare | Risultato |
---|---|---|---|
is_ipv4
|
0.0.0.0 | {{#invoke:IP validator|is_ipv4|0.0.0.0}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). |
93.2.50.255 | {{#invoke:IP validator|is_ipv4|93.2.50.255}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
93.2.50.256 | {{#invoke:IP validator|is_ipv4|93.2.50.256}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
93.2.50 | {{#invoke:IP validator|is_ipv4|93.2.50}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
A.2.50.255 | {{#invoke:IP validator|is_ipv4|A.2.50.255}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
is_ipv6
|
2001:13:A1B:90F:512:FFFF:88:AF3 | {{#invoke:IP validator|is_ipv6|2001:13:A1B:90F:512:FFFF:88:AF3}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). |
4:4:4:4:4:4:4:4 | {{#invoke:IP validator|is_ipv6|4:4:4:4:4:4:4:4}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
2001:13:A1B::FFFF:AF3 | {{#invoke:IP validator|is_ipv6|2001:13:A1B::FFFF:AF3}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
2001:13:A1B:90F::FFFF:88:AF3 | {{#invoke:IP validator|is_ipv6|2001:13:A1B:90F::FFFF:88:AF3}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
2001::90F::FFFF:88:AF3 | {{#invoke:IP validator|is_ipv6|2001::90F::FFFF:88:AF3}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
2001:13:A1B:90F:512:FFFF:88 | {{#invoke:IP validator|is_ipv6|2001:13:A1B:90F:512:FFFF:88}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
2001.13.A1B.90F.512.FFFF.88.AF3 | {{#invoke:IP validator|is_ipv6|2001.13.A1B.90F.512.FFFF.88.AF3}} | Errore Lua alla linea 24: attempt to call field '_getParameters' (a nil value). | |
is_ip
|
1.2.3.4 | {{#invoke:IP validator|is_ip|1.2.3.4}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). |
2001:13:A1B:90F:512:FFFF:88:AF3 | {{#invoke:IP validator|is_ip|2001:13:A1B:90F:512:FFFF:88:AF3}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
4:4:4:4 | {{#invoke:IP validator|is_ip|4:4:4:4}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). | |
test | {{#invoke:IP validator|is_ip|test}} | Errore Lua alla linea 4: attempt to call field '_getParameters' (a nil value). |
local str = {}
function str.is_ipv4( frame )
local new_args = str._getParameters( frame.args, { 's' } );
local s = new_args['s'] or '';
local LEN = 4;
if not string.gmatch(s, "^%d+\.%d+\.%d+\.%d+$") then
return '0'
end
local count = 0;
for substr in string.gmatch(s, "(%w+)") do
count = count + 1;
if count > LEN or not string.gmatch(substr, "^([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$") then
return '0'
end
end
return '1';
end
function str.is_ipv6( frame )
local new_args = str._getParameters( frame.args, { 's' } );
local s = new_args['s'] or '';
local LEN = 4;
if not string.gmatch(s, "^%w*:%w*:%w*:%w*$") then
return '0'
end
local count = 0;
for substr in string.gmatch(s, "(%w+)") do
count = count + 1;
if count > LEN or not string.gmatch(substr, "^([0-9A-Fa-f]|[1-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]?[0-9A-Fa-f]?)$") then
return '0'
end
end
return '1';
end
function str.is_ip( frame )
local ipv4 = str.is_ipv4( frame ) == '1';
local ipv6 = str.is_ipv6( frame ) == '1';
if ipv4 or ipv6 then
return '1';
else
return '0';
end
end
return str