端口扫描实验报告
网络端口扫描

电子信息工程学系实验报告 ——适用于计算机课程课程名称:信息安全技术实验项目名称:网络端口扫描 实验时间:2011-9-26班级: 姓名: 学号:实 验 目 的:1.通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。
2.在Windows 操作系统下使用Superscan 工具进行网络端口扫描实验。
3.通过端口扫描实验,可以增强学生在网络安全方面的防护意识。
实 验 环 境:Windows 操作系统、虚拟机、Superscan 工具实 验 内 容 及 过 程:1、使用SuperScan 扫描工具对同一网段内所有主机进行端口扫描,完成后,任选2台主机(其中一台为本机),分析其端口开放情况,要求注明开放的各端口含义,以及可能带来的危害。
安装Superscan 工具后,打开该软件,在“Port list file ”中选择“hensss.lst ”,如下图:在“IP ”一栏中选择要扫描的IP 网段范围,然后单击“start ”开始扫描。
成 绩:指导教师(签名):虚拟机的IP地址设置为:选择如下两台主机进行分析:危害。
135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。
端口漏洞:有的病毒就是利用RPC漏洞来攻击计算机的。
RPC本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误地处理格式不正确的消息造成的。
该漏洞会影响到RPC与DCOM之间的一个接口,该接口侦听的端口就是135。
而139端口是为“NetBIOS Session Service”提供的,主要用于提供Windows文件和打印机共享以及Unix 中的Samba服务。
实验4漏洞扫描

3.受害主机开启139或445端口(需要这两个 端口的支持)
4.攻击者想办法得到受害主机的用户或管理员 权限;
数据包,若目标主机端口开发,在返回 SYN=1,ACK=1的消息。否则返回RST=1.
漏洞扫描
(3)如TCP的FIN扫描。 向目标主机发送FIN=1,若目标端口开发,则
丢弃此数据包,如端口未开放,则返回RST包 (4)间接扫描:利用第三方主机扫描。 常用扫描工具:
Nmap 、 Super Scan等。
文件—高级扫描向导
主机IPC$攻击虚拟机 实验步骤
2.建立IPC$连接
(默认共享不显示)
主机IPC$攻击虚拟机 实验步骤
如果将123.cmd文件换成其它可以打开 对方主机某个端口的文件,如srv.exe文 件可以开启99端口。
在通过新开启的端口,Telnet对方,就 可以为所欲为了。
所有这些,微软的初衷都是为了管理 员可以远程登陆从而方便对系统的管 理,但这恰恰降低了系统的安全性。
实验目的
了解默认设置的缺陷及安全隐患,掌握去 掉这些安全隐患的配置方法。
实验设备
A:Windows XP,B: Windows 2000 Server
ipc$攻击实现的条件
1.目标主机是NT或以上操作系统(支持IPC$ )并开启了默认共享;
什么是IPC$
In)
是共享“命名管道”的资源,它是为 了让进程间通信而开放的命名管道,通 过提供用户名和密码,连接双方可以建 立安全的通道并以通道进行加密数据的 交换,从而实现对远程计算机的访问。
实验总结报告

实验总结报告实验总结报告「篇一」一、实验目的通过练习使用网络端口扫描器,可以了解目标主机开放的端口和服务程序,从而获取系统的有用信息,发现网络系统的安全漏洞。
在实验中,我们将在Windows 操作系统下使用Superscan进行网络端口扫描实验,通过端口扫描实验,可以增强学生在网络安全方面的防护意识。
利用综合扫描软件“流光”扫描系统的漏洞并给出安全性评估报告。
二、实验原理(一).端口扫描的原理一个开放的网络端口就是一条与计算机进行通信的信道,对网络端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息,从而为下一步的入侵做好准备。
对网络端口的扫描可以通过执行手工命令实现,但效率较低;也可以通过扫描工具实现,效率较高。
扫描工具是对目标主机的安全性弱点进行扫描检测的软件。
它一般具有数据分析功能,通过对端口的扫描分析,可以发现目标主机开放的端口和所提供的服务以及相应服务软件版本和这些服务及软件的安全漏洞,从而能及时了解目标主机存在的安全隐患。
1.端口的基础知识端口是TCP协议中所定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。
TCP/UDP的端口号在0~65535范围之内,其中1024以下的端口保留给常用的网络服务。
例如,21端口为FTP服务,23端口为TELNET服务,25端口为SMTP服务,80端口为HTTP服务,110端口为POP3服务等。
2.扫描的原理扫描的方式有多种,为了理解扫描原理,需要对TCP协议简要介绍一下。
一个TCP头的数据包格式如图2-1所示。
它包括6个标志位,其中:图2-1 TCP数据包格式扫描往往是入侵的前奏,所以如何有效的屏蔽计算机的端口,保护自身计算机的安全,成为计算机管理人员首要考虑的问题。
为了防止对计算机网络端口的扫描,我们可以采用端口扫描监测工具来监测对端口的扫描,防止端口信息外露。
常用的端口扫描监测工具包括ProtectX、PortSentry等。
实验二端口扫描superscan

实验二端口扫描superscan实验二端口扫描——SuperScan的使用【实验目的】熟悉并掌握端口扫描工具——Superscan的使用,利用端口扫描工具Superscan 对局域网中的机器实施端口扫描,获取网络中各台计算机的端口开放情况,由此来判断网络中的计算机的基本安全情况。
【预备知识】计算机端口:按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。
主要介绍TCP和UDP端口:TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。
常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
UDP端口:即用户数据包协议端口,无需在客户端和服务器之间建立连接,可靠性得不到保障。
常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QICQ 使用的8000和4000端口等等。
【实验环境】PC1:Windows2000 Professional+SP2,IP地址为192.168.0.1PC2:Windows2000 Professional+SP2,IP地址为192.168.0.2PC3:Windows2000 Server+SP2+IIS5.0,IP地址为192.168.0.3【实验工具】Superscan.exe:Version 4.0 英文版;免费软件;一款强大的扫描工具,能通过本地和远程主机的IP地址扫描该主机相关的软件、端口和服务等的安全状况,并能生成详细的扫描报告提供给用户。
【实验用时】30分钟【对应讲义】信息安全基础-入侵方法分析【实验过程与步骤】步骤一:端口扫描工具Superscan 4.0 各项功能的简介运行 Superscan 4.0.exe(如图2-1),可以看到在该软件上方显示的菜单项包括“Scan”扫描;“Host and Service Discovery”主机和服务的端口发现(具体设置为各个相关端口);“Scan Options”扫描选项;“T ools”工具;“Windows Enumeration”系统调查;以及“About”关于该软件介绍。
网络端口扫描实验报告

一、实验目的1. 理解网络端口扫描的基本原理和作用。
2. 掌握常用的网络端口扫描工具,如Xscan、Nmap和流光等。
3. 学习如何进行网络端口扫描,并对扫描结果进行分析。
4. 了解网络端口扫描在网络安全中的应用。
二、实验环境1. 操作系统:Windows 102. 网络端口扫描工具:Xscan、Nmap、流光3. 实验网络:实验室内部局域网三、实验步骤1. 安装网络端口扫描工具(1)下载并安装Xscan、Nmap和流光等网络端口扫描工具。
(2)确保实验网络连接正常,打开扫描工具。
2. 使用Xscan进行端口扫描(1)在Xscan中输入目标IP地址或域名。
(2)选择扫描方式,如全端口扫描、快速扫描等。
(3)点击“开始扫描”按钮,等待扫描完成。
(4)查看扫描结果,了解目标主机开放的端口和服务。
3. 使用Nmap进行端口扫描(1)在Nmap中输入目标IP地址或域名。
(2)选择扫描选项,如-sT(全端口扫描)、-sS(半开放扫描)等。
(3)运行命令:nmap -sT 目标IP地址或域名。
(4)查看扫描结果,了解目标主机开放的端口和服务。
4. 使用流光进行端口扫描(1)在流光中输入目标IP地址或域名。
(2)选择扫描模式,如快速扫描、全端口扫描等。
(3)点击“开始扫描”按钮,等待扫描完成。
(4)查看扫描结果,了解目标主机开放的端口和服务。
5. 分析扫描结果(1)对比三种扫描工具的扫描结果,了解不同扫描工具的特点。
(2)分析目标主机开放的端口和服务,了解其可能存在的安全风险。
四、实验结果与分析1. Xscan扫描结果通过Xscan扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口。
2. Nmap扫描结果通过Nmap扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口,并获取了更详细的信息,如操作系统类型、服务版本等。
3. 流光扫描结果通过流光扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口,并提供了端口对应的程序信息。
实验二 网络端口扫描

实验二网络端口扫描一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。
本实验将在Windows操作系统下使用Superscan工具进行网络端口扫描实验,在Linux操作系统下将使用综合性扫描工具Nessus进行扫描练习(暂不进行)。
通过端口扫描实验,可以增强学生在网络安全方面的防护意识。
二、实验原理在Internet安全领域,扫描器是最有效的破解工具之一,扫描器是一种自动检测远程或本地主机安全性弱点的程序。
通过使用扫描器,可以发现远程服务器是否存活、它对外开放的各种TCP端口的分配及提供的服务、它所使用的软件版本(如OS和其它Software的版本)以及所存在可能被利用的系统漏洞。
根据这些信息,可以让使用它的用户了解到远程主机所存在的安全问题。
1、扫描的类型(1)地址扫描地址扫描是最简单、最常见的一种扫描方式。
可以通过Ping来判断某一主机是否在线。
也可以通过一些工具来获得某一网络中所有在线主机的地址。
但由于现在很多的路由器与防火墙对ICMP请求进行拦截,因此这种方式也不一定很可靠。
(2)端口扫描互联网上通信的双方不仅需要知道对方的地址,还需要知道通信程序的端口号。
目前使用的IPv4协议支持16位的端号,端口号可使用的范围为0~65535,其中0~1023为熟知端口,被指定给特定的服务使用,由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理;1024~49151为注册端口,这些端口由IANA记录并追踪;49152~65535端口叫做动态端口或专门端口,提供给专用应用程序。
在进行入侵攻击之前,首先要了解目标系统的是什么OS,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。
端口实验报告

一、实验目的1. 了解端口扫描的基本概念和原理。
2. 掌握常用端口扫描工具的使用方法。
3. 学会分析端口扫描结果,识别潜在的安全风险。
二、实验环境1. 实验主机:Windows 10操作系统2. 实验工具:Nmap、Xscan、Nessus等端口扫描工具3. 实验对象:互联网上的目标主机三、实验内容1. 端口扫描概述2. 使用Nmap进行端口扫描3. 使用Xscan进行端口扫描4. 使用Nessus进行端口扫描5. 分析端口扫描结果四、实验步骤1. 端口扫描概述端口扫描是指通过网络发送特定数据包,检测目标主机上开放的服务端口的过程。
通过端口扫描,我们可以了解目标主机上运行的服务,从而评估其安全风险。
2. 使用Nmap进行端口扫描(1)安装Nmap:从官方网站下载Nmap安装包,按照提示进行安装。
(2)运行Nmap:在命令行中输入“nmap 目标IP”进行扫描。
(3)查看扫描结果:Nmap会生成一个文本文件,其中包含了扫描结果。
3. 使用Xscan进行端口扫描(1)安装Xscan:从官方网站下载Xscan安装包,按照提示进行安装。
(2)运行Xscan:在Xscan界面输入目标IP,点击“开始扫描”按钮。
(3)查看扫描结果:Xscan会生成一个HTML文件,其中包含了扫描结果。
4. 使用Nessus进行端口扫描(1)安装Nessus:从Tenable官方网站下载Nessus安装包,按照提示进行安装。
(2)运行Nessus:在Nessus界面输入目标IP,选择扫描模板,点击“开始扫描”按钮。
(3)查看扫描结果:Nessus会生成一个报告,其中包含了扫描结果。
5. 分析端口扫描结果(1)识别开放端口:根据扫描结果,找出目标主机上开放的端口。
(2)分析服务类型:根据开放端口,确定目标主机上运行的服务类型。
(3)评估安全风险:根据服务类型,评估目标主机的安全风险。
五、实验结果与分析1. 使用Nmap扫描目标主机,发现其开放了80、443、22、21等端口。
端口扫描实验实验报告nmap端口扫描工具

端口扫描实验实验报告nmap端口扫描工具网络攻防对抗实验报告实验名称:端口扫描实验(实验三)指导教师:专业班级:姓名:学号:_____电子邮件:___实验地点:实验日期:实验成绩:____________________一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统的有用信息,发现网络系统的安全漏洞。
在实验中,我们将在Windows操作系统下使用端口扫描工具Xscan,Nmap和流光Fluxay5.0进行网络端口综合扫描实验,并给出安全性评估报告,加深对各种网络和系统漏洞的理解。
同时,通过系统漏洞的入侵练习增强网络安全防护意识。
二、实验原理TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。
端口便是计算机与外部通信的途径。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息。
进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。
在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。
用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。
通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。
前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。
后者指在本机运行的检测本地系统安全漏洞的扫描工具。
三、实验内容和步骤Xscan的应用1.Xscan的使用__scan v3.3 采用多线程方式对指定IP 地址段进行扫描,扫描内容包括:SNMP 信息,CGI 漏洞,IIS 漏洞,RPC 漏洞,SSL 漏洞,SQL-SERVER、SMTP-SERVER、弱口令用户等。
扫描结果保存在/log/目录中。
其主界面为下图所示。
2.开始扫描(1)配置扫描参数,先点击扫描参数,在下面红框内输入你要扫描主机的ip 地址(或是一个范围),本说明中我们设置为靶机服务器的IP 地址,45(2)选择需要扫描的项目,点击扫描模块可以选择扫描的项目(3)开始扫描,该扫描过程会比较长,请大家耐心等待,并思考各种漏洞的含义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络端口扫描实验报告一、网络端口扫描简介TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。
端口便是计算机与外部通信的途径。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息。
进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。
在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。
用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。
通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。
前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。
后者指在本机运行的检测本地系统安全漏洞的扫描工具。
本实验主要针对前者。
端口是TCP协议中定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。
它采用【IP地址:端口号】形式定义,通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。
端口号在0~~65535之间,低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。
这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。
端口与服务进程一一对应,通过扫描开放的端口就可以判断计算机中正在运行的服务进程。
二、实验目的1.了解熟悉MFC及的基本原理和方法。
2.加深对tcp的理解,学习端口扫描技术和,原理熟悉socket编程。
3.通过自己编程实现简单的IP端口扫描器模型。
4.通过端口扫描了解目标主机开放的端口和服务程序。
三、实验环境Windows操作系统VC++6.0开发环境四、实验设计实验原理通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程,如果端口处于侦听状态,那么connect()就可以成功返回,否则这个端口不可用,即没有提供服务。
实验内容1. 设计实现端口扫描器2. IP地址、端口范围可以用户输入。
3. 要求有有好的可视化操作界面。
实验步骤:1、用户界面:使用vc6.0里的MFC来开发用户界面2、端口扫描:使用socket函数中的connect()连接计算机来判定目标计算机是否开放了要测试的端口五、代码实现#include <afxext.h>#include <winsock.h>#pragma comment(lib,"wsock32.lib")#define ZERO (fd_set *)0int maxth, scanok, scannum;int portip, hoststart, hoststop, startport, endport; long searchnum, searched;void usage(char *);void playx(int);void setip2(char *);void customport(char *, char *, char *);void portscannow(int);int main(int argc, char *argv[]){WSADATA wsadata;system("cls.exe");printf("\r\n============== 命令行端口扫描器PortScanner V1.0 ==============");if ((argc < 3) || (argc > 4)){usage(argv[0]);return -1;}if(!(stricmp(strlwr(argv[1]), "-p") == 0)){usage(argv[0]);return -1;}if (WSAStartup(MAKEWORD(1,1), &wsadata) != 0){printf("\r\nWsatartup error");return -1;}if (argc == 3){setip2(argv[2]);}elseif (argc == 4){customport(argv[0], argv[2], argv[3]);}else{usage(argv[0]);return -1;}portscannow(argc);WSACleanup();return 0;}void usage(char * prog){printf("Usage: %s <Option>", prog);printf("\r\n\n <Option>:");printf("\r\n -p [ Port|StartPort-EndPort ] < HostName|IP|StartIP-EndIP >"); printf("\r\n\n Example: ");printf("\r\n %s -p 192.168.0.1", prog);printf("\r\n %s -p 192.168.0.1-192.168.0.254", prog);printf("\r\n %s -p 21-80 192.168.0.1", prog);printf("\r\n %s -p 21-80 192.168.0.1-192.168.0.254\r\n", prog);return;void playx(int play = 0){char *plays[12]={" | "," / "," - "," \\ "," | "," / "," - "," \\ "," | "," / "," - "," \\ ",};if (searchnum != 0){for (int i = 0 ; i <= 3; i ++){printf(" =%s= %d%s Completed. \r", plays , searched * 100 / (searchnum + 1), "%"); Sleep(5);}}else{printf(" =%s=\r", plays[play]);Sleep(10);}}void setip2(char *cp){int host;struct hostent *testhost;char *startip = "", *endip = "";if (strstr(cp, "-") && strlen(cp) > 15 && strlen(cp) < 32){endip = strchr(cp, '-') + 1;strncpy(startip, cp, strlen(cp) - strlen(strchr(cp, '-')));hoststart = ntohl(inet_addr(startip));hoststop = ntohl(inet_addr(endip));}else{testhost = gethostbyname(startip);if(!testhost){WSACleanup( );printf("\r\nCan't get ip of: %s", cp);exit(-1);}memcpy(&host, testhost->h_addr, 4);hoststop = hoststart = ntohl(host);}void TestThread(int thread = 200){for (;;){playx();if (maxth > thread)Sleep(100);else break;}return;}void WaitThreadEnd(){Sleep(6000);printf("\r \r\n");printf(" Wait ( %d )Thread end...\r\n", maxth);for(;;){if (maxth > 0){Sleep(100);playx();continue;}else break;}printf("\r\n");return;}void customport(char *cp, char *cp2, char *cp3){int intport;char *checker;startport = atoi(cp2);endport = atoi(cp2);if (strstr(cp2,"-")){intport = atoi(checker = strchr(cp2, '-') + 1);if (intport > 0 && intport < 65536)endport = intport;}if (startport < 0 || startport > 65536 || endport < 0 || endport > 65535)usage(cp);exit(-1);}setip2(cp3);}UINT portscan(LPVOID port){int addr = portip;int sock;struct fd_set mask;struct timeval timeout;struct sockaddr_in server;unsigned long flag = 1;sock = socket(AF_INET, SOCK_STREAM, 0);if (sock == INV ALID_SOCKET){printf("\r\nSock Error:%s", WSAGetLastError());maxth --;return -1;}server.sin_family=AF_INET;server.sin_addr.s_addr = htonl(addr);server.sin_port = htons(short(port));playx();if (ioctlsocket(sock, FIONBIO, &flag) != 0){printf("\r\nSock Error:%s", WSAGetLastError()); closesocket(sock);maxth --;return -1;}connect(sock, (struct sockaddr*)&server, sizeof(server)); _sec = 18;_usec = 0;FD_ZERO(&mask);FD_SET(sock, &mask);switch(select(sock + 1, ZERO, &mask, ZERO, &timeout)) {case -1:{printf("\r\nSelect() error");maxth --;return -1;}case 0:{maxth --;closesocket(sock);return -1;}default:if(FD_ISSET(sock, &mask)){shutdown(sock, 0);printf(" [Found:] %s Port: %d open.\r\n", inet_ntoa(server.sin_addr), ntohs(server.sin_port)); closesocket(sock);scanok ++;maxth --;return 1;}}return 0;}void portscannow(int xp){int sport;char *timenow, timebuf[32];char *ports[32]={ "21","22","23","25","53","79","80","110","111","113","123","135","139","143","443","512", "513","514","515","540","1080","1433","1521","1524","3306","3389","5631","6000","6112", "8000","8080","12345"};timenow = _strtime(timebuf);printf("\r\nPortScan Start Time: %s\r\n\n",timenow);maxth = 0;scanok = 0;scannum = 0;searched = 0;searchnum = hoststop - hoststart +1;if(xp == 3)searchnum = searchnum * 32;if(xp == 4)searchnum = searchnum * (endport - startport +1);for (portip = hoststart; portip <= hoststop; portip ++, scannum ++){if ((portip % 256) == 0 || (portip % 256) == 255){if(xp == 3)searchnum = searchnum - 32;if(xp == 4)searchnum = searchnum - (endport - startport +1);scannum --;playx();continue;}if (xp == 3){for (sport = 0; sport < 32; sport ++, maxth ++, searched ++){TestThread(180);CWinThread * pthread = AfxBeginThread(portscan,LPVOID(atoi((char*)ports[sport]))); Sleep(120);}}if (xp == 4){sport = endport - startport;if(sport > 500 ){for(sport = startport; sport <= endport; sport ++, maxth ++, searched ++){TestThread(2000);CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport));Sleep(10);}}else{for(sport = startport; sport <= endport; sport ++, maxth ++, searched ++){TestThread(250);CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport));Sleep(100);playx();}}}}WaitThreadEnd();timenow = _strtime(timebuf);printf("\r\nPortScan End Time: %s", timenow);printf("\r\nScan %d Hosts completed. Open %d Ports!\r\n", scannum, scanok);}六、代码实现在刚开始的时候编译是成功的,但是build是有错误的,如图:在网上找解决的方法,发现是MFC连接的问题,在工程—>设置—>microsoft基础类中不使用MFC改成使用MFC作为静态链接库,确定后再次build。