端口扫描VC++程序代码

上传者: dhj3650 | 上传时间: 2023-12-11 08:02:58 | 文件大小: 4.09MB | 文件类型: RAR
扫描多IP之多端口 ////////////////////////////////////////////////////////////////////////// //FileName: PortScanner.cpp //Data: 2009-04-18 //Remark: 扫描核心代码 ////////////////////////////////////////////////////////////////////////// #pragma once #include "Header.h" #include "resource.h" ////////////////////////////////////////////////////////////////////////// //端口器扫描初始化 ////////////////////////////////////////////////////////////////////////// BOOL InitPortScan() { WSADATA WsaData; //构建socket版本信息 WORD WsaVersion=MAKEWORD(2,2); //初始化网络 if(WSAStartup(WsaVersion,&WsaData;)!=0) { MessageBoxA(NULL,"WSAStartup fail;",NULL,NULL); return FALSE; } return TRUE; } ////////////////////////////////////////////////////////////////////////// //connect线程函数 ////////////////////////////////////////////////////////////////////////// DWORD WINAPI PortScanthread(LPVOID LpParam) { ThreadParam Param; //将参数复制 MoveMemory(&Param;,LpParam,sizeof(Param)); //将hCopyOkEvent设为有信号状态来通知扫描主线程进行下一次循环 SetEvent(Param.hCopyOkEvent); SOCKET Sock; SOCKADDR_IN SockAddr = {0}; //创建socket Sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (Sock==INVALID_SOCKET) { MessageBoxA(NULL,"INVALID_SOCKET",NULL,NULL); } //填充IP地址及端口信息 SockAddr.sin_family = AF_INET; SockAddr.sin_addr.s_addr = htonl(Param.Ip); SockAddr.sin_port = htons(Param.Port); //将IP地址转换为字符串 char *IpChar = inet_ntoa(SockAddr.sin_addr); char str[200]; if(connect(Sock,(SOCKADDR *)&SockAddr;,sizeof(SockAddr))==0) { //连接成功, sprintf(str,"%s : %d 连接成功\n",IpChar,Param.Port); } else { //连接失败 sprintf(str,"%s : %d 连接失败\n",IpChar,Param.Port); } //添加显示信息 InsertInfo(str); //释放一个信号量计数 ReleaseSemaphore(Param.hThreadNum,1,NULL); //关闭socket closesocket(Sock); return 0; } ////////////////////////////////////////////////////////////////////////// //扫描主线程 ////////////////////////////////////////////////////////////////////////// DWORD WINAPI MainThread(LPVOID LpParam) { MainThreadParam Param; //将参数复制 MoveMemory(&Param;,LpParam,sizeof(Param)); //将Param.hCopyEvent设置为有信号状态 SetEvent(Param.hCopyEvent); ThreadParam threadparam = {0}; //创建子线程的“参数复制完成”事件对象,并作为参数传入PortScanthread() HANDLE hThreadCopyOkEvent = CreateEvent(NULL,TRUE,FALSE,NULL); threadparam.hCopyOkEvent=hThreadCopyOkEvent; //创建一个信号量对象来控制子线程的总数量PortScanthread() HANDLE hThreadNum = CreateSemaphore(NULL,256,256,NULL); threadparam.hThreadNum = hThreadNum; //循环connect for (DWORD Ip = Param.StartIp;Ip<=Param.EndIp;Ip++) { for (DWORD Port = Param.StartPort;Port<=Param.EndPort;Port++) { //等待hThreadNum发出信号(表示有可有线程) DWORD WaitRes =WaitForSingleObject(hThreadNum,200); if (WaitRes==WAIT_OBJECT_0) { threadparam.Ip=Ip; threadparam.Port=Port; CreateThread(NULL,0,PortScanthread,&threadparam;,0,NULL); //等待其子线程发出“参数复制完毕”的信号 WaitForSingleObject(threadparam.hCopyOkEvent,INFINITE); //重置threadparam.hCopyOkEvent为无信号状态 ResetEvent(threadparam.hCopyOkEvent); } else if(WaitRes==WAIT_TIMEOUT) { Port--; continue; } } } return 0; }

文件下载

资源详情

[{"title":"( 29 个子文件 4.09MB ) 端口扫描VC++程序代码","children":[{"title":"PortScanner","children":[{"title":"Release","children":[{"title":"PortScanner.exe <span style='color:#111;'> 232.50KB </span>","children":null,"spread":false},{"title":"PortScanner.pdb <span style='color:#111;'> 403.00KB </span>","children":null,"spread":false}],"spread":true},{"title":"PortScanner.ncb <span style='color:#111;'> 12.28MB </span>","children":null,"spread":false},{"title":"PortScanner","children":[{"title":"Release","children":[{"title":"PortScanner.res <span style='color:#111;'> 222.38KB </span>","children":null,"spread":false},{"title":"vc90.idb <span style='color:#111;'> 323.00KB </span>","children":null,"spread":false},{"title":"vc90.pdb <span style='color:#111;'> 228.00KB </span>","children":null,"spread":false},{"title":"mt.dep <span style='color:#111;'> 67B </span>","children":null,"spread":false},{"title":"PortScannerDlg.obj <span style='color:#111;'> 572.23KB </span>","children":null,"spread":false},{"title":"BuildLog.htm <span style='color:#111;'> 8.01KB </span>","children":null,"spread":false},{"title":"PortScanner.exe.intermediate.manifest <span style='color:#111;'> 616B </span>","children":null,"spread":false},{"title":"PortScanner.obj <span style='color:#111;'> 575.31KB </span>","children":null,"spread":false}],"spread":true},{"title":"PortScanner.vcproj.MIAO-2A33141AD0.Administrator.user <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.CHENSL.chsl.user <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj <span style='color:#111;'> 4.15KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.MIAO-1D1C804794.miao.su.user <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"PortScanner.cpp <span style='color:#111;'> 5.68KB </span>","children":null,"spread":false},{"title":"PortScanner.aps <span style='color:#111;'> 240.77KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.MIAO-B2227E2D45.miao.su.user <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"PortScanner.rc <span style='color:#111;'> 3.00KB </span>","children":null,"spread":false},{"title":"Aglty.ico <span style='color:#111;'> 221.42KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.DUHONGJUN.Administrator.user <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.MIAO-E104CCBAA1.Administrator.user <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"resource.h <span style='color:#111;'> 1003B </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.WWW-8B8CE45002F.Administrator.user <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"PortScannerDlg.cpp <span style='color:#111;'> 3.09KB </span>","children":null,"spread":false},{"title":"Header.h <span style='color:#111;'> 1.46KB </span>","children":null,"spread":false},{"title":"PortScanner.vcproj.calcor-PC.calcor.user <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false}],"spread":false},{"title":"PortScanner.sln <span style='color:#111;'> 899B </span>","children":null,"spread":false},{"title":"PortScanner.suo <span style='color:#111;'> 29.00KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明