一、 实验目的
了解端口扫描的基本概念和工作原理编写一个利用全连接的端口扫描程序,能显示目标主机的端口开放情况。要求能在命令行输入要扫描的目标主机和端口范围。比如:scan *.*.*.* nnnn-mmmm
二、实验设计
(一)实验内容:编写一个利用全连接的端口扫描程序,能显示目标主机的端口开放情况。要求能在命令行输入要扫描的目标主机和端口范围。比如:scan *.*.*.* nnnn-mmmm
(二)背景知识
端口扫描原理
在“计算机网络”课程中,我们知道完成一次TCP连接需要完成三次握手才能建立。端口扫描正是利用了这个原理,通过假冒正常的连接过程,依次向目标主机的各个端口发送连接请求,并根据目标主机的应答情况判断目标主机端口的开放情况,从而分析并对一些重要端口实施攻击。
端口扫描的方式有两种,一种称为完整扫描,一次连接过程如下图所示:
图1 完整扫描连接过程示意图
另一种扫描方式称为半开扫描,出于欺骗的目的,半开扫描在收到服务端的应答信号(SYN+ACK)后,不再发送响应信号(ACK)。一次连接过程如下图所示:
图2 半开扫描连接过程示意图
(三)实验设计
1、字符串处理实验要求的输入格式是:scan *.*.*.* nnnn-mmmm,但考虑到使用及程序复杂性,所以微微调整输入目的主机及端口号范围的表达方式,详细见实验结果截图。
2、设计主程序
(1)WinSock编程框架;