通过socket对系统端口进行扫描
2017-04-28 11:34
471 查看
设计图
实现
实现
// PortScan.cpp : 定义控制台应用程序的入口点。 // //#include <stdafx.h> #include <stdio.h> #include <Winsock2.h> #pragma comment(lib,"Ws2_32.lib") //目标地址 #define IP "172.16.180.38" //线程个数 #define THREADCOUNT 60 DWORD WINAPI ThreadProc( LPVOID lpParameter); //端口号 int PortNum=0; //临界区变量 CRITICAL_SECTION cs; //线程函数 DWORD WINAPI ThreadProc( LPVOID lpParameter) { //创建套接字 SOCKET TryConnect; while (1) { if (PortNum>65535) { break; } //进入临界区 EnterCriticalSection(&cs); //领取任务 int tmpport=PortNum; PortNum++; //离开临界区 LeaveCriticalSection(&cs); TryConnect=socket(AF_INET,SOCK_STREAM,0); if (INVALID_SOCKET==TryConnect) { printf("socket"); } //尝试连接 sockaddr_in addrMe={0}; addrMe.sin_family=AF_INET; DWORD threadID=GetCurrentThreadId(); //printf("线程%d正在检测端口%d\n",threadID,PortNum); addrMe.sin_port=htons(tmpport); addrMe.sin_addr.S_un.S_addr=inet_addr(IP); int retCon=connect(TryConnect,(sockaddr*)&addrMe,sizeof(sockaddr_in)); if (SOCKET_ERROR!=retCon) { printf("----------------检测到目标主机开放%d端口\n",tmpport); } } return 0; } int main(int argc, char* argv[]) { //初始化套接字 WSADATA ws; ::WSAStartup(MAKEWORD(2,0),&ws); //初始化临界区 InitializeCriticalSection(&cs); //多线程扫描 HANDLE hThread[THREADCOUNT]; for (int i=0;i<THREADCOUNT;i++) { hThread[i]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,(LPVOID)0,0,NULL); } WaitForMultipleObjects(THREADCOUNT,hThread,true,INFINITE); //删除临界区 DeleteCriticalSection(&cs); system("pause"); return 0; }
相关文章推荐
- 通过使用Socket来扫描获取手机中可使用的端口
- 通过ILO或ILO2 端口链接到服务器进行配置服务器和安装系统,管理服务器
- FlashSocke 通过flash进行socket通信(as代码)
- 通过epel安装htop进行系统进程查看
- 基于多台linux主机通过1台服务器进行socket通讯小程序编写
- SE955 激光扫描头设置 通过SSI串口进行设置
- Python学习-端口扫描-对本地host127.0.0.1的主机进行扫描端口
- Windows系统Shell通过Socket转发
- 使用php通过Socket进行发信源码,支持发信认证
- Linux系统如何使用iptables进行本地端口转发?
- 通过socket进行TCP通信丢包原因总结
- 系统中Jedis的应用,通过JedisClient来进行数据的交流
- 如何让Domain里的其他系统通过DC来进行外网的DNS解析
- 通过Nginx访问FastDFS文件系统并进行图片文件裁剪的性能测试和分析
- 通过Socket直接与RILD进行通信
- 配置H3C交换机实例(设置安全策略版,通过源IP地址对WEB登录用户进行控制)[连载之电子商务系统架构]
- 使用HTML5和JS-Recon进行端口扫描
- 通过协议分析理解端口扫描原理
- pb调用saveasascii导出系统后通过ole对excel进行格式设置无效处理办法
- 【网络通信】Wince 和 PC 通过USB 用Socket 进行通信