亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? thread.cpp

?? 端口掃描器
?? CPP
字號:
#include "stdafx.h"
#include "PortScaner.h"
#include "PortScanerDlg.h"

#include <winsock2.h> 
#include <ws2tcpip.h> 

#pragma comment(lib,"ws2_32.lib") 
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define srcPort 88 


unsigned short checksum(USHORT *buffer, int size) ;
int send_packet(in_addr tgtIP,in_addr sourceIP,int port) ;
UINT SendThread(LPVOID pParam);

typedef struct ip_hdr 
{ 
    unsigned char  h_verlen;   //4位首部長度,4位IP版本號 
    unsigned char  tos;        //8位服務類型TOS 
    unsigned short total_len;  //16位總長度(字節) 
    unsigned short ident;      //16位標識 
    unsigned short frag_and_flags; //3位標志位 
    unsigned char  ttl;        //8位生存時間 TTL 
    unsigned char  proto;      //8位協議 (TCP, UDP 或其他) 
    unsigned short checksum;   //16位IP首部校驗和 
    unsigned int   sourceIP;   //32位源IP地址 
    unsigned int   destIP;     //32位目的IP地址 
}IP_HEADER; 

typedef struct tcp_hdr         //定義TCP首部 
{ 
    USHORT th_sport;           //16位源端口 
    USHORT th_dport;           //16位目的端口 
    unsigned int    th_seq;    //32位序列號 
    unsigned int    th_ack;    //32位確認號 
    unsigned char th_lenres;   //4位首部長度/6位保留字 
    unsigned char th_flag;     //6位標志位 
    USHORT th_win;             //16位窗口大小 
    USHORT th_sum;             //16位校驗和 
    USHORT th_urp;             //16位緊急數據偏移量 
}TCP_HEADER; 

typedef struct tsd_hdr         //定義TCP偽首部 
{ 
    unsigned long saddr;       //源地址 
    unsigned long daddr;       //目的地址 
    char mbz; 
    char ptcl;                 //協議類型 
    unsigned short tcpl;       //TCP長度 
}PSD_HEADER; 

UINT SendThread(LPVOID pParam)
{	

	CPortScanerDlg* pDlg;
	pDlg=(CPortScanerDlg* )::AfxGetApp()->GetMainWnd();
	int nIP= (pDlg->IP[6]-pDlg->IP[2])*254 + (pDlg->IP[7]-pDlg->IP[3]) + 1;
	char hostname[100],hostip[100],destip[100];
	struct hostent* phe; 
	in_addr host,dest;

	gethostname(hostname,128);//獲取本機主機名    
    phe = gethostbyname(hostname);//獲取本機ip地址結構   
    if(phe == NULL) 
    { 
		pDlg->SendOver();
		return 1;
    }   
    strcpy(hostip, inet_ntoa(*((struct in_addr*)phe->h_addr_list[0])));//得到本機ip地址 
	host.S_un.S_addr=inet_addr(hostip);
	sprintf(destip,"%d.%d.%d.%d",pDlg->IP[0],pDlg->IP[1],pDlg->IP[2],pDlg->IP[3]);
	dest.S_un.S_addr=inet_addr(destip);
	Sleep(1000); //wait for RecvThread
	CString msg;
	for(int i=0;i<nIP;i++)
	{
		for(int j=0;j<pDlg->nPort;j++)
		{
			msg.Format("Scaning  %d.%d.%d.%d port :%d ...", 
				dest.S_un.S_un_b.s_b1,dest.S_un.S_un_b.s_b2,dest.S_un.S_un_b.s_b3,dest.S_un.S_un_b.s_b4,
				pDlg->portlist[j]);
			pDlg->SetWindowText(msg);
			send_packet(dest,host,pDlg->portlist[j]);
			Sleep(speed);
		}

		dest.S_un.S_un_b.s_b4++;
		if(dest.S_un.S_un_b.s_b4==255)
		{
			dest.S_un.S_un_b.s_b3++;
			dest.S_un.S_un_b.s_b4=1;
		}
		if(dest.S_un.S_un_b.s_b3==255)
		{
			dest.S_un.S_un_b.s_b2++;
			dest.S_un.S_un_b.s_b3=1;
		}
		if(dest.S_un.S_un_b.s_b2==255)
		{
			dest.S_un.S_un_b.s_b1++;
			dest.S_un.S_un_b.s_b2=1;
		}
	}
	pDlg->SetWindowText("Scan Finish,Wait ...");
	pDlg->SendOver();
	return 0;
}


int send_packet(in_addr tgtIP,in_addr sourceIP,int port) 
{ 
    SOCKET             sendSocket; 
    BOOL               flag; 
    int                timeout; 
    SOCKADDR_IN        sin; 
    IP_HEADER          ipHeader; 
    TCP_HEADER         tcpHeader; 
    PSD_HEADER         psdHeader; 
    char               szSendBuf[60] = {0}; //發送包的緩沖區
    int                ret; 
    unsigned long      source_ip; 
    unsigned long      target_ip; 
    
    //建立原始數據socket 
    if((sendSocket = WSASocket(AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET) 
    { 
        return 0; 
    } 
    
    //設置自己填充數據包 
    if(setsockopt(sendSocket, IPPROTO_IP, IP_HDRINCL, (char *)&flag, sizeof(flag)) == SOCKET_ERROR) 
    { 
        return 0; 
    } 
    
    //設置超時時間 
    timeout = 1000; 
    if(setsockopt(sendSocket, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)) == SOCKET_ERROR) 
    { 
        return 0; 
    } 
    
    target_ip = tgtIP.S_un.S_addr; 
    source_ip = sourceIP.S_un.S_addr; 
    
    sin.sin_family = AF_INET; 
    sin.sin_port = htons(port); 
    sin.sin_addr.S_un.S_addr = target_ip; 
    
    //填充IP首部 
    ipHeader.h_verlen = (4<<4 | sizeof(ipHeader)/sizeof(unsigned long)); 
    ipHeader.total_len = htons(sizeof(ipHeader)+sizeof(tcpHeader)); 
    ipHeader.ident = 1; 
    ipHeader.frag_and_flags = 0x40; 
    ipHeader.ttl = 128; 
    ipHeader.proto = IPPROTO_TCP; 
    ipHeader.checksum = 0; 
    ipHeader.sourceIP = source_ip;//源IP 
    ipHeader.destIP = target_ip;  //目的IP 
    
    //填充TCP首部 
    tcpHeader.th_dport = htons(port);//目的端口 
    tcpHeader.th_sport = htons(srcPort); //源端口 
    tcpHeader.th_seq = 0x12345678; 
    tcpHeader.th_ack = 0; 
    tcpHeader.th_lenres = (sizeof(tcpHeader)/4<<4|0); 
    tcpHeader.th_flag = 2;//syn標志位。0,2,4,8,16,32->FIN,SYN,RST,PSH,ACK,URG(推測,哈哈) 
    tcpHeader.th_win = htons(512); 
    tcpHeader.th_urp = 0; 
    tcpHeader.th_sum = 0; 
    
    //填充tcp偽首部 
    psdHeader.saddr = ipHeader.sourceIP; 
    psdHeader.daddr = ipHeader.destIP; 
    psdHeader.mbz = 0; 
    psdHeader.ptcl = IPPROTO_TCP; 
    psdHeader.tcpl = htons(sizeof(tcpHeader)); 
    
    //計算TCP校驗和 
    memcpy(szSendBuf, &psdHeader, sizeof(psdHeader)); 
    memcpy(szSendBuf + sizeof(psdHeader), &tcpHeader, sizeof(tcpHeader)); 
    
    tcpHeader.th_sum = checksum((USHORT *)szSendBuf, sizeof(psdHeader) + sizeof(tcpHeader)); 
    
    //計算IP檢驗和 
    memcpy(szSendBuf, &ipHeader, sizeof(ipHeader)); 
    memcpy(szSendBuf + sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader)); 
    memset(szSendBuf + sizeof(ipHeader) + sizeof(tcpHeader), 0, 4); 
    ipHeader.checksum = checksum((USHORT *)szSendBuf, sizeof(ipHeader) + sizeof(tcpHeader)); 
    
    memcpy(szSendBuf, &ipHeader, sizeof(ipHeader)); 
    memcpy(szSendBuf + sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader)); 
    
    //發送數據包 
    ret = sendto(sendSocket, szSendBuf, sizeof(ipHeader) + sizeof(tcpHeader), 0, (struct sockaddr*)&sin, sizeof(sin)); 
    
    if(ret == SOCKET_ERROR) 
    { 
 //       printf("Send Packet Error...\n"); 
        return 0; 
    } 
    else return 1; 
}  


unsigned short checksum(USHORT *buffer, int size) 
{ 
    unsigned long cksum=0; 
    
    while(size >1) 
    { 
        cksum += *buffer++; 
        size -= sizeof(USHORT); 
    } 
    if(size) 
    { 
        cksum += *(UCHAR*)buffer; 
    } 
    cksum = (cksum >> 16) + (cksum & 0xffff); 
    cksum += (cksum >> 16); 
    return (unsigned short)(~cksum); 
} 


UINT RecvThread(LPVOID pParam)
{ 
    SOCKET          sock; 
    SOCKADDR_IN     sniff; 
    char            recvBuffer[65000] = {0};//緩沖區存放捕獲的數據 

	CPortScanerDlg* pDlg;
	pDlg=(CPortScanerDlg* )::AfxGetApp()->GetMainWnd();    
	char hostname[100],hostip[100];
	struct hostent* phe; 
//	in_addr host,dest;

	gethostname(hostname,128);//獲取本機主機名    
    phe = gethostbyname(hostname);//獲取本機ip地址結構   
    if(phe == NULL) 
    { 
		return 1;
    }   
    strcpy(hostip, inet_ntoa(*((struct in_addr*)phe->h_addr_list[0])));//得到本機ip地址 
    //建立socket監聽數據包 
    sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP); 
    
    sniff.sin_family = AF_INET; 
    sniff.sin_port = htons(0); 
    sniff.sin_addr.s_addr = inet_addr(hostip); 
    
    //綁定到本地隨機端口 
    bind(sock,(PSOCKADDR)&sniff,sizeof(sniff)); 
    
    //設置SOCK_RAW為SIO_RCVALL,以便接收所有的IP包 

    DWORD dwBufferLen[10] ; 
    DWORD dwBufferInLen = 1 ; 
    DWORD dwBytesReturned = 0 ; 
    WSAIoctl(sock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL); 
    IP_HEADER        *ipHeader;  //IP_HEADER型指針 
    TCP_HEADER       *tcpHeader; //TCP_HEADER型指針 
    struct   in_addr in;   
    while(1) 
    { 
        memset(recvBuffer , 0 , sizeof(recvBuffer) ); 
        
        //開始捕獲數據包 
        int bytesRecived = recv(sock,recvBuffer,sizeof(recvBuffer),0); 
        if(bytesRecived < 0) 
        { 
            break; 
        } 
        ipHeader =  (IP_HEADER *)  recvBuffer; 
		tcpHeader= (TCP_HEADER *) (recvBuffer+sizeof(IP_HEADER)); 
		in.S_un.S_addr=ipHeader->sourceIP;
		if(tcpHeader->th_flag == 18)// && tcpHeader->th_sport == htons(info.port)) 
		{ 
			 //inet_ntoa(in),ntohs(tcpHeader->th_sport)
			pDlg->AddPort(in,ntohs(tcpHeader->th_sport));
		}
    } 
    return 1; 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级二级三级蜜桃| 亚洲精品国产品国语在线app| 精品亚洲成av人在线观看| 欧美精品乱码久久久久久按摩| 五月婷婷综合激情| 91精品国产福利在线观看| 久久99精品国产麻豆婷婷| 久久午夜国产精品| 成人精品国产免费网站| 日韩美女啊v在线免费观看| 在线亚洲免费视频| 日韩av网站在线观看| 久久夜色精品一区| 北条麻妃一区二区三区| 夜夜精品视频一区二区| 91精品国产综合久久久久久久 | 激情成人综合网| 国产情人综合久久777777| 99久久伊人网影院| 亚洲成人免费在线| 精品福利在线导航| 北条麻妃国产九九精品视频| 亚洲一区在线视频观看| 日韩一区和二区| 国产91精品免费| 亚洲精品成人精品456| 91精品欧美久久久久久动漫| 国产精品亚洲一区二区三区妖精 | 激情六月婷婷综合| 久久中文字幕电影| 91片黄在线观看| 日韩国产成人精品| 国产精品天美传媒| 在线影视一区二区三区| 久久99精品久久久久久久久久久久| 国产精品国产成人国产三级 | 欧美经典一区二区三区| 色综合天天综合| 日本欧美久久久久免费播放网| 国产视频一区在线观看| 欧美手机在线视频| 极品少妇一区二区三区精品视频| 亚洲少妇中出一区| 日韩欧美你懂的| 91丨porny丨中文| 麻豆精品在线视频| 欧美午夜片在线看| 亚洲人成精品久久久久| 日韩亚洲欧美高清| 紧缚奴在线一区二区三区| 亚洲精品乱码久久久久久 | 69久久夜色精品国产69蝌蚪网| 国产精品99久久久| 无吗不卡中文字幕| 国产视频一区在线播放| 在线电影欧美成精品| 成人免费看片app下载| 日本aⅴ精品一区二区三区| 亚洲图片欧美激情| 精品成人佐山爱一区二区| 国产精品久久久久久户外露出| 国产乱色国产精品免费视频| 国产91丝袜在线18| 欧美电影免费观看高清完整版在线| 日韩电影免费在线观看网站| 国产精品午夜电影| 欧美大黄免费观看| 欧美综合在线视频| 国产精品一区二区在线看| 丝袜美腿一区二区三区| 中文字幕日韩一区| 久久先锋影音av| 日韩欧美三级在线| 欧美丰满少妇xxxxx高潮对白| 91香蕉视频污| 夫妻av一区二区| 韩国一区二区在线观看| 视频一区中文字幕| 一区二区理论电影在线观看| 国产精品色一区二区三区| 久久亚洲一区二区三区四区| 欧美电影影音先锋| 欧美专区在线观看一区| 99久久精品情趣| 高清不卡在线观看av| 经典三级视频一区| 久久精品噜噜噜成人av农村| 日韩专区欧美专区| 亚洲国产欧美在线| 一二三四社区欧美黄| 亚洲色大成网站www久久九九| 国产拍揄自揄精品视频麻豆| 久久一夜天堂av一区二区三区| 日韩欧美视频在线| 日韩一区二区三区在线| 欧美高清视频一二三区| 亚洲一区二区高清| 欧美日本一区二区三区四区| 在线亚洲人成电影网站色www| 91一区二区三区在线观看| 成人久久久精品乱码一区二区三区| 国产精品羞羞答答xxdd| 国产一区二区主播在线| 激情五月播播久久久精品| 久色婷婷小香蕉久久| 麻豆免费看一区二区三区| 久久精品国产一区二区三 | 亚洲国产精品国自产拍av| 久久男人中文字幕资源站| 色悠悠亚洲一区二区| 亚洲女同一区二区| 亚洲欧美成人一区二区三区| 国产精品丝袜91| 中文字幕不卡三区| 国产精品不卡在线| 精品sm捆绑视频| 日韩亚洲国产中文字幕欧美| 欧美特级限制片免费在线观看| 精品视频一区三区九区| 欧美精三区欧美精三区| 91精品国产综合久久久蜜臀图片 | 专区另类欧美日韩| 亚洲欧美自拍偷拍| 亚洲免费三区一区二区| 一区二区三区 在线观看视频| 亚洲国产日韩一级| 麻豆精品久久精品色综合| 蜜桃久久精品一区二区| 久久99国产精品久久99| 国产乱人伦偷精品视频不卡| 精品国产一区二区三区久久久蜜月| 91论坛在线播放| 在线精品视频小说1| 欧美肥大bbwbbw高潮| 欧美大胆一级视频| 久久日韩粉嫩一区二区三区| 中文字幕+乱码+中文字幕一区| 中文字幕一区二区视频| 亚洲香蕉伊在人在线观| 免费成人在线观看视频| 国产一区二区久久| aaa亚洲精品| 欧美日韩一区三区四区| 欧美videossexotv100| 中文av一区特黄| 一区二区三区四区激情| 免费在线观看精品| 国产黄色精品视频| 91丨九色丨尤物| 日韩一级免费一区| 欧美国产精品中文字幕| 亚洲自拍偷拍av| 奇米影视一区二区三区| 精品亚洲成a人| 色悠悠久久综合| 日韩欧美在线一区二区三区| 国产免费久久精品| 亚洲一区免费观看| 久久91精品久久久久久秒播| 99久久综合精品| 日韩一区二区三免费高清| 中文字幕精品一区二区精品绿巨人 | 在线电影一区二区三区| 久久精品视频免费| 亚洲国产sm捆绑调教视频 | 日韩一级片在线观看| 久久久久久久久久久黄色| 伊人色综合久久天天| 麻豆国产欧美一区二区三区| av网站免费线看精品| 91精品国产综合久久婷婷香蕉 | 一区二区三区欧美日| 久久av资源网| 色94色欧美sute亚洲线路一久| 日韩欧美成人激情| 色综合久久久久| 欧美系列一区二区| 欧美日韩精品二区第二页| 岛国精品在线观看| 日本电影欧美片| 欧美色中文字幕| 日韩美女天天操| 久久精品在线观看| 国产日韩精品一区二区三区| 麻豆91精品91久久久的内涵| a亚洲天堂av| 欧美一区二区在线免费观看| 日韩一区二区在线看片| 中文字幕国产精品一区二区| 午夜精品福利一区二区三区蜜桃| 91亚洲男人天堂| 午夜精品爽啪视频| 日韩欧美激情在线| 欧美一区二区免费| 亚洲卡通欧美制服中文| 欧美中文字幕亚洲一区二区va在线| 国产日韩在线不卡| 国产99久久久精品| 国产欧美精品日韩区二区麻豆天美| 亚洲精品综合在线|