Gemessen an der spezifischen Ausgabe verwenden Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!
Sie openbsd-netcat.
Betrachtet man den Code dafür, soll der Test an den UDP-Socket binden, dh es besteht eine offene Verbindung:
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 Probleme um 3 schreibt an den offenen Socket. Es gibt einen Hinweis, dass dies für IPv6 nicht funktioniert und nach etwa 100 überprüften Ports fehlschlägt.
Obwohl der andere Vorschlag gültig sein mag, glaube ich nicht, dass dies in diesem speziellen Fall passiert.
udptest
ist die Funktion, die ich suche und die meine Frage beantwortet. Über den von Ihnen angegebenen Link "* udptest () * Schreibe ein paar Mal, um festzustellen, ob der UDP-Port vorhanden ist"In der Tat nicht. Sie können Folgendes überprüfen:
Mit UDP können Sie das also nicht wirklich überprüfen, es sei denn, es gibt Ihnen Informationen zurück.
quelle
Es gibt eine ICMP-Nachricht, die signalisiert, dass ein Port, auch ein UDP-Port, geschlossen ist. Wenn also ein Host diese Nachricht sendet, kann davon ausgegangen werden, dass der Port geschlossen ist.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
quelle
Naja ich hab andere meinung:
Auf dieser Grundlage können Sie überprüfen, ob die Verbindung zwischen a und b auf diesem UDP-Port möglich ist. Später können Sie die Überprüfung mit tcpdump fortsetzen.
quelle
10.12.0.12
? Warum wird es auf beiden Computern verwendet?