【发布时间】:2021-06-30 10:52:29
【问题描述】:
我正在做一个端口扫描器。我可以通过尝试与端口建立连接来检查端口是否打开,但是,我将如何检查打开的端口是 udp 还是 tcp?
【问题讨论】:
-
您是使用 UDP 还是 TCP 建立连接?你必须说哪一个,当你创建套接字时......
-
如果你在扫描本地机器,有平台API可以直接查询本地端口表。但是,如果您尝试扫描远程机器,则根本无法直接确定给定端口是使用 TCP 还是 UDP。你所能做的就是尝试两者,看看会发生什么。尝试
connect()一个TCP套接字到该端口,看看它是否成功。尝试向端口发送 UDP 数据包,看看是否收到任何非 ICMP(主机不可达、端口不可达等)回复。