欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

c++ 端口掃描程序?qū)崿F(xiàn)案例

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

第一、原理

端口掃描的原理很簡(jiǎn)單,就是建立socket通信,切換不通端口,通過(guò)connect函數(shù),如果成功則代表端口開(kāi)發(fā)者,否則端口關(guān)閉。

所有需要多socket程序熟悉,本內(nèi)容是在window環(huán)境下的

第二、單線程實(shí)現(xiàn)方式

// PortScanf.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#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;  //當(dāng)前端口
  int ret;
 
  WSAStartup(MAKEWORD(2, 2), &wsa);  //使用winsock函數(shù)之前,必須用WSAStartup函數(shù)來(lái)裝入并初始化動(dòng)態(tài)連接庫(kù)
 
  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地址的端口號(hào)
    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); //輸出掃描過(guò)程中耗費(fèi)的時(shí)間
  WSACleanup();  //釋放動(dòng)態(tài)連接庫(kù)并釋放被創(chuàng)建的套接字
  return 1;
}
 
int main()
{
  scant("127.0.0.1", 75, 100);
   
  return 0;
}

第三、多線程實(shí)現(xiàn)方式

由于單線程執(zhí)行速度有些慢,我們加入多線程運(yùn)行,

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++ 端口掃描程序?qū)崿F(xiàn)案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。

上一篇:快速解決boost庫(kù)鏈接出錯(cuò)的問(wèn)題(分享)

欄    目:C語(yǔ)言

下一篇:c語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)之字符串

本文標(biāo)題:c++ 端口掃描程序?qū)崿F(xiàn)案例

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1573.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有