计算机网络课程设计 端口扫描 实验报告材料.docx

上传人:王** 文档编号:734535 上传时间:2023-12-28 格式:DOCX 页数:19 大小:132.26KB
下载 相关 举报
计算机网络课程设计 端口扫描 实验报告材料.docx_第1页
第1页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第2页
第2页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第3页
第3页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第4页
第4页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第5页
第5页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第6页
第6页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第7页
第7页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第8页
第8页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第9页
第9页 / 共19页
计算机网络课程设计 端口扫描 实验报告材料.docx_第10页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机网络课程设计 端口扫描 实验报告材料.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计 端口扫描 实验报告材料.docx(19页珍藏版)》请在优知文库上搜索。

1、1需求分析31.l课程设计目的31.2 课程设计容31.3 课程设计要求32概要设计32. 1原理概述32.1 运行环境32.2 基本设计思路32.3 功能模块设计33详细设计33. 1程序流程33.1 主要算法53.2 主要数据结构63.4主要函数说明64用户使用手册75项目分析与总结75.1项目分析75.2总结与建议8附录A源程序代码文件说明8附录B参考文献201 .需求分析1.1 课程设计目的加深对TCP/IP的理解,熟悉SOCket编程。课程设计容实现一个扫描器,使用TCPCOnneCt进行端口扫描,并把扫描到的结果记录下来。课程设计要求(1) WindOWS或LinUX环境下,程序在

2、单机上运行;(2)使用端口扫描对一台主机进行扫描,并显示出结果;对一个网段进行IP扫描,显示出结果;(3)提供友好的用户界面。2 .概要设计2.1 1原理概述TCPCOnneCt扫描是最基本的扫描,操作系统提供的COnneCt()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么COnneCt()就能成功。否则,这个端口是不能用的,即没有提供服务。2.2 运行环境Windowsxp,VC+6.02.3 基本设计思路创建一个CSocket套接字,通过CSOCket的Connect函数测试该主机的某个端口是否能够连通,获得该端口的打开状态。2.4 功能模块设计(1)

3、测试主机某个端口是否打开;(2) “扫描结果”标题栏;(3)扫描单个或多个端口的单选按钮;(4) “扫描”,“停止”,“保存”按钮。3 .详细设计3.1程序流程3.2主要算法(1)测试主机某个端口是否打开的函数TeStCOnneetion():BOOLCMyDlg::TestConnection(CStringIP,UINTnPort)CSocket*pSocket;pSocket=newCSocket;ASSERT(pSocket);if(!pSocket-CreateO)deletepSocket;pSocket=NULL;returnfalse;)whiIe(!pSocket-Conne

4、ct(IP,nPort)deletepSocket;pSocket=NULL;returnfalse;1pSocket-Close();deletepSocket;returntrue;1(2)响应单选按钮“扫描单个端口”和“扫描多个端口”的单击消息:voidCMyDlg::OnRadiolSingleOm_bSinglePort=true;m_cSinglePort.EnableWindowO;m_cPortFrom.EnableWindow(false);m_cPortTo.EnableWindow(false);m_cBtnStop.EnableWindow(false);1voidCM

5、yDlg::OnRadio2RangeOm_bSinglePort=false;m_cSingIePort.Enab1eWindow(false);m_cPortFrom.EnableWindowO;m_cPortTo.EnableWindowO;m_cBtnStop.EnableWindow(Ialse);)(3)显示列表框标题栏的成员函数:增加列表框标题栏的某一列BOOLCMyDlg::AddColumn(LPCTSTRstritem,intnltem,intnSubltem,intnMask,intnFmt)LV_COLUMNIvc;lvc.InaSk=nMask;lvc.fmt=nFm

6、t;lvc.PszText=(LPTSTR)strltem;lvc.cx=m_cResult.GetStringWidthdvc.pszText)+25;if(nMask&LVCF_SUBITEM)if(nSubItem!=-l)lvc.iSubItem=nSubItem;elselvc.iSubItem=nItem;1returnm_cResult.InsertColumn(nltern,&lvc);)在列表框中加一条BOOLCMyDlg::AddItem(intnltem,intnSubltern,LPCTSTRstritem,intnlmagelndex)LV_ITEMIvItern;I

7、vItem.mask=LVIF_TEXT;IvItem.iltem=nltem;IvItem.iSub11em-nSub11em;IvItem.pszText=(LPTSTR)stritem;if(nlmagelndex!=-l)IvItem.mask|=LVIF_1MAGE;IvItem.iImage=LVIF_1MAGE;)if(nSubItem-O)returnm_cResult.InsertItem(&lvltern);returnm_cResult.SetItem(ftlvltem);)加一列标题栏字符voidCMyDlg::AddHeader(LPTSTRhdr)if(m_pCol

8、umns)m_pColumns-AddTail(hdr);)显示列表框标题栏voidCMyDlg::ShowHeaders0intn!ndex=O;POSITIONpos=m-pColumns-GetHeadPositionO;while(pos)CStringhdr=(CString)m_pColumns-GetNext(pos);AddColumn(hdr,nlndex+);)(4)“扫描”,“停止”,“保存”按钮,见附录程序。3.3主要数据结构及主要函数说明(1)测试主机某个端口是否打开TestConnection函数;(2)“扫描结果”标题栏成员函数AddlIeader,AddColu

9、mn,ShowlIeaders;在列表框中添加字符串的函数AddItem;(3)扫描单个或多个端口的单选按钮OnRadioSingleO和OnRaclioRangeO;(4)“扫描停止”,“保存”按钮OnButtonlStart(),0nButton2Stop(),0nButton3Save();4 .用户使用手册输入要扫描的主机IP地址,选择“扫描单个端口”或“扫描多个端口”,若选择前者,则输入单个端口号;若选择后者,则输入端口围。再输入扫描次数(默认值为1),单击“扫描”按钮,扫描结果列表框中将会显示所输入端口的扫描结果。单击“停止”时停在那一刻的状态,并显示已扫描的结果。单击“保存”时,

10、可将结果保存在文本文件中。5 .项目分析与总结5.1项目分析扫描单个端口的结果:扫描多个端口:王端口扫描主机地址:105. 104 . 36扫描单个端口G扫描多个端口扫描次数:扫描结果:20到 |30工P地址端口号端口状态尝试连接次数标记5.5.5.5,5.5.5.50.0.s0.0.s20212223242s262728*30Close1Close1Close1Close1Close1Open1Close1Close1Close1Close1Close1当前扫描状态扫描停止 I保存通过观察,主机IP为10.5.104.36的25号端口是打开的。5.2总结与建议通过这次实验,加深了对端口的理解

11、,也对SoCket编程有了进一步的认识。实验中遇到许多函数和定义需要上网查阅资料,而且调试的过程也比较困难,需要向同学请教。所以,今后在编程和查阅资料方面的能力有待于进一步去提高。附录A源程序代码文件说明:(1)端口扫描Dig.h:# if!defined(AFX_DLG_H_37F5060C_6D8B_42F0_90D9_FBA754BAD52B_INCLUDED_)defineAFX_DLG_H_37F5060C_6D8B_42E0_90D9_FBA754BAD52B_INCLUDED_# if_MSC_VER1000# Pragmaoncettendif/MSCVER1000Sinclu

12、de#include#includeincludeinclude扫描结果typedefstructintnAttempts;TCHARIPAddress16;TCHARport5;BOOLbStatus;/1=open,0=close!DATA;Illlltlllllizilizillllizillizziizilizilllizilllinillllllllllllllllllllllll/CMyDlgdialogclassCMyDlg:publicCDialog/Constructionpublic:CMyDlg(CWnd*pParent=NULL);/standardconstructo

13、r/DialogData/AFX,DATA(CMyDlg)enumIDD=IDD_MY_DIALOG;CProgressCtrlm_cProgress;CListCtrlm_cResult;CIPAddressCtrlm_cIP;CEditm_cAttempts;CEditm_cPortTo;CEditm_cPortFrom;CEditm_cSinglePort;CButtonm_cBtnStop;CButtonm_cBtnScan;/AFX_DATA/ClassWizardgeneratedvirtualfunctionoverrides/(AFX-VIRTUAL(CMyDlg)protec

14、ted:virtualvoidDoDataExchange(CDataExchange*pDX);/DDX/DDVsupport/AFX_VIRTUAL/Implementationprotected:HICONm_hlcon;BOOLTestConnection(CStringIP,UINTnPort);测试主机某个端口是否打开voidShowHeaders(void);显示列表框标题栏voidAddHeader(LPTSTRhdr);/增加一列标题栏字符ddltem(intnltem,intnSubltern,LPCTSTRstritem,intnImageIndex=-I);/向m_cResult输出一个结果/向输出结构列表控件增加一列BOOLAddColumn(LPCTSTRstritem,intnltem,intnSubItem=-I,intnMask=LVCF,FMTLVCFJVlDTHLVCF_TEXTLVCF_SUBITEM,intnFmt=LVCFMT_LEFT);/变量UINTBOOL UINTUINTm_nMaxAttempts;m_bSing1ePort; m_minPort,m_maxPort; m

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 网络与通信

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!