API de red
Las utilidades para analizar URL, IP y host/puerto están disponibles bajo
ptool.net y p.net.
ptool.net.parse_url
v0.2.0- Introduced.
ptool.net.parse_url(input) analiza una cadena URL y devuelve una tabla de
partes normalizadas.
Argumentos:
input(string, obligatorio): La URL que se va a analizar.
Devuelve: una tabla con los siguientes campos:
kind(string): Siempre"url".input(string): La cadena de entrada original.normalized(string): La cadena URL normalizada.scheme(string): El esquema de la URL.username(string, opcional): El nombre de usuario decodificado, si existe.password(string, opcional): La contraseña decodificada, si existe.host(string, opcional): El hostname o literal IP, si existe.host_kind("domain"|"ipv4"|"ipv6", opcional): La clasificación del host si hay host.port(integer, opcional): El puerto explícito, si existe.path(string): La ruta de la URL.query(string, opcional): La cadena de consulta sin el?inicial.fragment(string, opcional): El fragmento sin el#inicial.
local parts = ptool.net.parse_url("https://user:[email protected]:8443/a/b?q=1#frag")
print(parts.scheme) -- https
print(parts.host_kind) -- domain
print(parts.port) -- 8443
print(parts.path) -- /a/b
print(parts.query) -- q=1
print(parts.fragment) -- frag
ptool.net.parse_ip
v0.2.0- Introduced.
ptool.net.parse_ip(input) analiza una dirección IPv4 o IPv6 y devuelve una
tabla de partes normalizadas.
Argumentos:
input(string, obligatorio): La dirección IP que se va a analizar.
Devuelve: una tabla con los siguientes campos:
kind(string): Siempre"ip".input(string): La cadena de entrada original.normalized(string): La dirección IP normalizada.version(integer):4para IPv4 o6para IPv6.
local parts = ptool.net.parse_ip("2001:0db8::1")
print(parts.normalized) -- 2001:db8::1
print(parts.version) -- 6
ptool.net.parse_host_port
v0.2.0- Introduced.
ptool.net.parse_host_port(input) analiza una cadena host:port y devuelve
una tabla de partes normalizadas.
Argumentos:
input(string, obligatorio): La cadena host y puerto. Las direcciones IPv6 deben usar notación con corchetes como[2001:db8::1]:443.
Devuelve: una tabla con los siguientes campos:
kind(string): Siempre"host_port".input(string): La cadena de entrada original.normalized(string): La cadenahost:portnormalizada.host(string): El valor de host normalizado.host_kind("domain"|"ipv4"|"ipv6"): La clasificación del host.port(integer): El puerto analizado.
local parts = ptool.net.parse_host_port("[2001:0db8::1]:443")
print(parts.host) -- 2001:db8::1
print(parts.host_kind) -- ipv6
print(parts.normalized) -- [2001:db8::1]:443
print(parts.port) -- 443