我正在阅读 nmap 源代码,因为我想了解它如何发现某些端口被过滤或防火墙。我对 c 中的套接字有一些经验,并且我已经构建了简单的端口扫描器,这很容易 - 如果连接成功,则端口打开,否则关闭(因为 RST 返回)。但是如果使用防火墙端口,它们不会返回 RST 数据包,而我的端口扫描器只是永远“等待”。
如果有人对此主题有经验,请指出发生实际扫描和端口状态确定的 nmap 代码部分,或者至少告诉我是否有任何其他代码可以处理这个问题。
我正在阅读 nmap 源代码,因为我想了解它如何发现某些端口被过滤或防火墙。我对 c 中的套接字有一些经验,并且我已经构建了简单的端口扫描器,这很容易 - 如果连接成功,则端口打开,否则关闭(因为 RST 返回)。但是如果使用防火墙端口,它们不会返回 RST 数据包,而我的端口扫描器只是永远“等待”。
如果有人对此主题有经验,请指出发生实际扫描和端口状态确定的 nmap 代码部分,或者至少告诉我是否有任何其他代码可以处理这个问题。