A juzgar por el resultado específico Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!
que está utilizando openbsd-netcat.
Mirando el código para eso, la prueba es enlazar al socket UDP, es decir, hay una conexión abierta:
if (vflag || zflag) {
/* For UDP, make sure we are connected. */
if (uflag) {
if (udptest(s) == -1) {
ret = 1;
continue;
}
}
/* Don't look up port if -n. */
if (nflag)
sv = NULL;
else {
sv = getservbyport(
ntohs(atoi(portlist[i])),
uflag ? "udp" : "tcp");
}
fprintf(stderr,
"Connection to %s %s port [%s/%s] "
"succeeded!\n", host, portlist[i],
uflag ? "udp" : "tcp",
sv ? sv->s_name : "*");
udptest emite alrededor de 3 escrituras en el socket abierto. Hay una nota de que esto no funciona para IPv6 y falla después de verificar alrededor de 100 puertos.
Entonces, aunque la otra sugerencia puede ser válida, no creo que eso esté sucediendo en este caso particular.
udptest
es la función que estoy buscando y responde a mi pregunta. Desde el enlace que proporcionó "* udptest () * Haga algunas escrituras para ver si el puerto UDP está allí"De hecho, no lo hace. Puede verificar haciendo:
Entonces, con UDP, no es algo que realmente pueda verificar a menos que le devuelva información.
fuente
Hay un mensaje ICMP para indicar que un puerto, incluso uno UDP, está cerrado. Entonces, si un host envía este mensaje, se puede suponer que el puerto está cerrado.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
fuente
Bueno, tengo una opinión diferente:
Entonces, basándose en eso, puede verificar si la conexión entre ayb en ese puerto udp es posible. Más adelante puede continuar verificando usando tcpdump.
fuente
10.12.0.12
? ¿Por qué se usa en ambas computadoras?