ตัดสินโดยเอาต์พุตเฉพาะที่Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!คุณใช้ openbsd-netcat
ดูที่รหัสสำหรับการทดสอบนั้นผูกกับซ็อกเก็ต UDP นั่นคือมีการเชื่อมต่อแบบเปิด:
              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ประมาณ 3 เขียนไปยังซ็อกเก็ตที่เปิดอยู่ มีข้อสังเกตว่าสิ่งนี้ใช้ไม่ได้กับ IPv6 และล้มเหลวหลังจากผ่านการตรวจสอบพอร์ตประมาณ 100 พอร์ต
ดังนั้นในขณะที่ข้อเสนอแนะอื่น ๆ อาจใช้ได้ แต่ฉันไม่คิดว่าจะเกิดขึ้นในกรณีนี้
               
              
udptestเป็นหน้าที่ที่ผมกำลังมองหาและตอบคำถามของฉัน จากลิงค์ที่คุณให้ไว้ "* udptest () * เขียนเพื่อดูว่ามีพอร์ต UDP อยู่หรือไม่"