国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++ 端口掃描程序實現案例

2020-01-26 14:08:50
字體:
來源:轉載
供稿:網友

第一、原理

端口掃描的原理很簡單,就是建立socket通信,切換不通端口,通過connect函數,如果成功則代表端口開發者,否則端口關閉。

所有需要多socket程序熟悉,本內容是在window環境下的

第二、單線程實現方式

// PortScanf.cpp : 定義控制臺應用程序的入口點。//#define WIN32_LEAN_AND_MEAN#include "stdafx.h"#include <WinSock2.h>#pragma comment(lib, "Ws2_32")int scant(char *Ip, int StartPort, int EndPort){   WSADATA wsa;  SOCKET s;  struct sockaddr_in server;   int CurrPort;  //當前端口  int ret;   WSAStartup(MAKEWORD(2, 2), &wsa);  //使用winsock函數之前,必須用WSAStartup函數來裝入并初始化動態連接庫   server.sin_family = AF_INET;  //指定地址格式,在winsock中只能使用AF_INET  server.sin_addr.s_addr = inet_addr(Ip); //指定被掃描的IP地址   for (CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)  {    s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);    server.sin_port = htons(CurrPort); //指定被掃描IP地址的端口號    ret = connect(s, (struct sockaddr *)&server, sizeof(server)); //連接     if (0 == ret) //判斷連接是否成功    {      printf("%s:%d Success O(∩_∩)O~~/n", Ip, CurrPort);      closesocket(s);    }    else {      printf("%s:%d Failed/n", Ip, CurrPort);    }  }   printf("Cost time:%f second/n", CostTime); //輸出掃描過程中耗費的時間  WSACleanup();  //釋放動態連接庫并釋放被創建的套接字  return 1;} int main(){  scant("127.0.0.1", 75, 100);     return 0;}

第三、多線程實現方式

由于單線程執行速度有些慢,我們加入多線程運行,

typedef struct _tagValue{  int start;  int end;}PortNums; void _cdecl beginThreadFunc1(LPVOID lpParam) {  PortNums *pnInt = (PortNums*)lpParam;  scan("127.0.0.1", pnInt->start, pnInt->end);} int a(){  PortNums m1;  m1.start = 70;  m1.end = 500;   PortNums m2;  m2.start = 501;  m2.end = 1000;   _beginthread(beginThreadFunc1, 0, &m1);  _beginthread(beginThreadFunc1, 0, &m2);    getchar();  return 0;}

注意需要#include<process.h>

以上這篇c++ 端口掃描程序實現案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 壤塘县| 泌阳县| 临朐县| 堆龙德庆县| 汤原县| 嵊泗县| 渭源县| 万盛区| 大埔县| 耿马| 安义县| 荔浦县| 大理市| 宁乡县| 兰溪市| 浏阳市| 玛多县| 巴林左旗| 沂南县| 青岛市| 兴和县| 民乐县| 莒南县| 望谟县| 闽侯县| 凤翔县| 江山市| 西平县| 松潘县| 赫章县| 贵德县| 平谷区| 垦利县| 开远市| 屏东县| 乌鲁木齐县| 浮山县| 宣威市| 霍邱县| 济宁市| 子长县|