ImageVerifierCode 换一换
格式:PDF , 页数:15 ,大小:244.73KB ,
资源ID:10748736      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10748736.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(主机端口扫描程序说明书.pdf)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

主机端口扫描程序说明书.pdf

1、基于MFC的主机端口扫描程序这是第七章这是第七章这是第七章这是第七章P127.3练习题练习题练习题练习题程序具体步骤如下:1.创建一个工程运行MicrosoftVisualC+后,单击“文件”中的“新建”一个应用程序生成向导(FCAppWizardex)创建一个基于对话框的工程,该工程的“工程名称”为103140003,如下所示:单击确定,然后选择“基本对话框“,点击下一步,再在WindowsSockets前打上勾,支持Winsock编程,点击“完成”后,“确定”即可。2.设计程序对话框(1)首先把VC+自动生成的对话框中的“TOD:在这里设置对话控制”剪切掉,将“取消“按钮的“属性“中的“标

2、题“改为退出,将“确定“按钮的“属性“中的“标题“改为TCP扫描,ID改为IDTCPSAN,添加一个“按钮“,将该按钮的“属性“中的“标题“改为UP扫描,I改为IDUPSCAN,添加3个“组框“,并将其“属性“中的“标题“分别改为IP地址、端口号、扫描结果,添加3个“编辑框“并将其“属性“中的ID分别改为IDPORT1、IDPORT2、IDSTAUS,添加“静态文本框“,并将其“属性“中的“标题“分别改为From、To,添加IP地址框,并将其“属性“中的ID改为IDM_IP,添加“静态文本框“,并将其“属性“中的“标题“别改为作者信息,如图所示:(2)按Ctrl+W打开ClasWizard(类

3、向导),在Mem berVaribles中为090114073Dlg类添加4个变量,这4个变量的名称分别为m _Ip、m _Port1、m _Port2、m _Staus点击“确定”按钮。(3)在类函数OnInitDialog()中/TOD:Addextrainitializationhere下添加m _ip.setwindowtext(“127.0.0.1“)(4)在类CMy090114073Dlg中添加私有变量WSADTAWSADat、SOCKETSocket、CStringIp、intip、sockaddr_inDestHost、CStringPort:(5)在设计的对话框中分别双击TC

4、P扫描按钮和UP扫描按钮,添加类函数OnTcpscan()和OnUdpscan(),并在类函数OnTcpscan()下添加如下代码:/TOD:AdyourcontrolnotifcationhandlercodehreUpdateDat(true);if(m _Port1=“)|(m _Port2=“)MesageBox(“您没有输入正确的端口号“);return;if(atoi(m _Port1)atoi(m _Port2)MesageBox(“请将小的端口号输在前面“);return;/初始化套节口if(WSAtartup(MAKEWORD(2,),UpdateDat(false);ret

5、urn;m _Staus+=“初始化Winsock成功!rn“;/创建连接套接字Socket=socket(AF_INET,SOCK_STREAM,0);if(Socket=INVALID_SOCKET)m _Staus+=“创建Socket失败!rn“;UpdateDat(false);WSACleanup();return;m _Staus+=“创建Socket成功!rn“;/转换IP地址格式m _Ip.GetWindowText(Ip);/判断域名或IP地址ip=inet_adr(Ip);if(ip=INADR_NOE)hostent*pHostent=gethostbynam e(Ip

6、);if(pHostent)ip=(*in_adr*)pHostent-h_adr_list).S_un.S_adr;/定义目的主机地址m em st(DestHost.in_fam ily=AF_INET;DestHost.in_adr.S_un.S_adr=ip;/循环扫描套接口for(intm _Port=atoi(m _Port1);m _Portatoi(m _Port2)MesageBox(“请将小的端口号输在前面“);return;/初始化套节口if(WSAtartup(MAKEWORD(2,2),UpdateDat(false);return;m _Staus+=“初始化Win

7、sock成功!rn“;/创建连接套接字Socket=socket(AF_INET,SOCK_DGRAM,0);if(Socket=INVALID_SOCKET)m _Staus+=“创建Socket失败!rn“;UpdateDat(false);WSACleanup();return;m _Staus+=“创建Socket成功!rn“;/设置非阻塞模式intnIotrl;unsignedlongFlag=1;nIotrl=ioctlsocket(Socket,FIONBIO,if(nIotrl=SOCKET_ERR)m _Staus+=“设置Socket非阻塞模式失败!rn“;closesoc

8、ket(Socket);WSACleanup();return;/判断域名或IP地址ip=inet_addr(Ip);if(ip=INADR_NONE)hostent*pHostent=gethostbynam e(Ip);if(pHostent)ip=(*(in_addr*)pHostent-h_addr_list).S_un.S_addr;/定义目的主机地址m em st(estost.sin_fam ily=AF_INET;DestHost.sin_addr.S_un.S_addr=ip;/循环扫描套接口for(intm _Port=atoi(m _Port1);m _Port=atoi

9、(m _Port2);m _Port+)DestHost.sin_port=htons(m _Port);/转换端口号为字符串Port.Form at(“%5d“,m _Port);/定义接收缓冲区char*SendBuf;SendBuf=newchar2;m em st(SendBuf,0,2);/发送UDP数据包intnc;nc = sendto(Socket,SendBuf,1,0,(structsockaddr*)if(nc=SOCKET_EROR)m _Staus+=“UDP包发送失败!rn“;closesocket(Socket);WSACleanup();return;Slep(

10、500);/定义源主机地址sockaddr_inSourceHost;intSourceSize;SourceSize=sizeof(SourceHost);m em st(/定义接收缓冲区char*RecvBuf;RecvBuf=newchar2;m em st(RecvBuf,0,2);/接收UDP数据包intnr;nr = recvfrom(Socket,RecvBuf,1,0,(structsockaddr*)if(nr=SOCKET_EROR)/RecvFrom错误类型intErorCode=GetLastEror();if(ErorCode=10054)m _Staus+=Ip;m

11、 _Staus+=“t;m _Staus+=“UDPort:“;m _Staus+=Port;m _Staus+=“t;m _Staus+=“Closern“;if(ErorCode=10035)m _Staus+=Ip;m _Staus+=“t;m _Staus+=“UDPort:“;m _Staus+=Port;m _Staus+=“t;m _Staus+=“Openrn“;elsm _Staus+=Ip;m _Staus+=“t;m _Staus+=“TCPort:“;m _Staus+=Port;m _Staus+=“t;m _Staus+=“Openrn“;UpdateDat(false);closesocket(Socket);WSACleanup();执行结果:错误情况:(a)(b)Tcp扫描:(c)Udp扫描:(d)点退出,即可退出了。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报