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

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

?? scanhost.cpp

?? 關鍵字: socket, 校驗和算法, ICMP, connect, 端口,掃描, 這是我課程設計時,用VC.NET寫的一個程序,功能是在利用socket提供的API函數, 填充并發送ICMP包,測
?? CPP
字號:
// scanhost.cpp : 定義控制臺應用程序的入口點。
//

#include "stdafx.h"
#include "scanhost_head.h"

WSADATA		wsaData;
SOCKET		sockRaw;
struct		sockaddr_in		dest, from, end;

int fromlen				= sizeof(from);
char * recvbuf			= new char[MAX_PING_PACKET_SIZE];
unsigned int  addr		= 0;
long	ThreadNumCounter= 0,ThreadNumLimit = 20;
long *  aa				= &ThreadNumCounter;

_TCHAR*  argv[] =
{
	"scanhost\0",
	"169.254.100.1\0",
	"169.254.196.255\0"
};


int _tmain()
{
	// init network
	if( WSAStartup(MAKEWORD(2,1), &wsaData) != 0 )
	{
		FatalError("WSAStartup failed! \n");
		ExitProcess(STATUS_FAILED);
	}

	//create socket
	sockRaw	=	WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP,NULL,0,WSA_FLAG_OVERLAPPED);
	if( sockRaw == INVALID_SOCKET )
	{
		FatalError(" WSASocket() failed: \n");
		ExitProcess(STATUS_FAILED);
	}

	// set 
	int		timeout = 1000;
	int		bread = setsockopt( sockRaw, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
	if( SOCKET_ERROR == bread )
	{
		FatalError(" failed to setsockopt: set option error!\n");
		int error = WSAGetLastError();
		ExitProcess(STATUS_FAILED);
	}
	
	timeout = 1000;
	bread = setsockopt(sockRaw, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
	if( SOCKET_ERROR == bread )
	{
		FatalError("failed to set send timeout!\n");
		ExitProcess(STATUS_FAILED);
	}

	memset(&dest, 0,sizeof(dest) );

	unsigned long  startIP, endIP;
	dest.sin_family      =  AF_INET;
	dest.sin_addr.s_addr = inet_addr(argv[1]);							//填入開始搜索IP地址
	startIP              = inet_addr(argv[1]);

	end.sin_family       =  AF_INET;
	end.sin_addr.s_addr  =  inet_addr(argv[2]);
	endIP                =  inet_addr(argv[2]);

	HANDLE		hThread;
//	while( htonl( startIP) < htonl(endIP) )
	while( startIP < endIP )	{
		if( ThreadNumCounter > ThreadNumLimit )
		{
			Sleep(5000);
			continue;
		}
		DWORD		ThreadID;
		sockaddr_in *  pIPAddrTemp  = new( sockaddr_in );
		if( !pIPAddrTemp )
		{
			FatalError( "memory  alloc  failed!\n");
			return -1;
		}

		*pIPAddrTemp	=	dest;

		//create new thread
		clock_t	start;
		start	=	clock();
		hThread	= CreateThread(NULL,NULL,&FindIP, (LPVOID)pIPAddrTemp, NULL, &ThreadID);

		long	i=60000000L;
		while( i--);
		TerminateThread( hThread, 0);
		InterlockedDecrement( aa );
		memset( &from, 0, sizeof(from) );			
		startIP		=   htonl(htonl( startIP + 1 ) );					// get next ip address
		dest.sin_addr.s_addr  =  startIP;
	}
	while( ThreadNumCounter  != 0 )
	{
		Sleep(2000);
		return -2;
	}
	return 0;
}


DWORD	WINAPI	FindIP( LPVOID pIPAddrTemp )
{
	int error = 0;
	InterlockedIncrement( aa );

	char	icmp_data[MAX_PACKET];
	memset(icmp_data, 0, MAX_PACKET);

	int	datasize  =  DEF_PACKET_SIZE;
	datasize	  += sizeof(IcmpHeader);
	fill_icmp_data( icmp_data, datasize );
	((IcmpHeader *) icmp_data) ->checksum   =  0;
	((IcmpHeader *) icmp_data) ->seq		=  0;

	((IcmpHeader *) icmp_data) ->checksum   =  checksum( (USHORT*) icmp_data, datasize);

	int bwrote  = sendto( sockRaw, icmp_data, datasize, 0, (struct sockaddr* )pIPAddrTemp, sizeof(dest));
	int n=0;
	if( SOCKET_ERROR == bwrote )
	{
		if( bwrote == SOCKET_ERROR )
		{
			FatalError( "time out!\n");
			error = WSAGetLastError();
		}
		FatalError( " sendto failed! \n");
		ExitProcess(STATUS_FAILED);
		n = 1;
	}
	if ( bwrote < datasize )
	{
		FatalError( "write some bytes!\n" );
		ExitProcess(STATUS_FAILED);
		n = 1;
	}

	// accept data packet
	int  bread = recvfrom( sockRaw, recvbuf, MAX_PING_PACKET_SIZE, 0, (struct sockaddr*)&from, &fromlen);
	if ( bread == SOCKET_ERROR )
	{
		if ( WSAGetLastError( ) == WSAETIMEDOUT )
		{
			FatalError("time out!\n");
		}
		FatalError( " recvfrom failed!\n");
		ExitProcess( STATUS_FAILED);
		n = 1;
	}

	if( n==0 )
		decode_resp( recvbuf, bread, &from);
	InterlockedDecrement(aa);				//線程數目-1
    
	return 0;
}


USHORT	 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  (USHORT) (~cksum);
}

void	fill_icmp_data( char * icmp_data, int datasize)
{
	IcmpHeader   *icmp_hdr;
	char * datapart;
	icmp_hdr  =  (IcmpHeader*) icmp_data;
	icmp_hdr ->type	= ICMP_ECHO;
	icmp_hdr ->id	= (USHORT)GetCurrentThreadId();
	datapart        = icmp_data + sizeof(IcmpHeader);
	memset(datapart, 'A', datasize - sizeof(IcmpHeader));

}


void	decode_resp( char *buf, int bytes,  struct sockaddr_in * from)
{
	IpHeader*		iphdr;
	IcmpHeader*		icmphdr;
	unsigned short  iphdrlen;
	iphdr			= (IpHeader *)buf;
	iphdrlen        = iphdr ->headlen * 4;
	icmphdr			= (IcmpHeader * ) (buf + iphdrlen);

	// if the packet is to short , then throw it
	if( bytes < iphdrlen + ICMP_MIN ) 
	{ 
		FatalError("數據包太短");
		return;
	}
	
	if ( icmphdr ->type != ICMP_ECHO_REPLY )	{ 
		FatalError("不是回送響應!\n");
		return;
	};

	if( icmphdr ->id != (USHORT)GetCurrentThreadId()) 	{ 
		FatalError("ID號不相符,丟棄!\n");
		return;
	};

	cout<< "活動主機:" <<inet_ntoa( from->sin_addr) <<endl;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv日韩mv国产网站app| 丝袜美腿高跟呻吟高潮一区| 亚洲精品乱码久久久久久久久 | 国产精品一区免费在线观看| 在线观看免费一区| 久久久午夜精品| 日韩精品一二三区| 色94色欧美sute亚洲13| 国产日韩欧美亚洲| 另类小说一区二区三区| 欧美少妇xxx| 日韩理论片在线| 国产.欧美.日韩| 久久久久国产成人精品亚洲午夜| 午夜精品一区在线观看| 91成人免费电影| 亚洲欧美综合色| 粉嫩一区二区三区性色av| 精品成人在线观看| 日韩精品视频网| 欧美日本在线播放| 香港成人在线视频| 精品视频1区2区3区| 亚洲另类色综合网站| 北条麻妃一区二区三区| 欧美国产一区在线| 国产成人午夜视频| 欧美极品xxx| 国产激情91久久精品导航 | 欧美无砖砖区免费| 一区二区三区资源| 色94色欧美sute亚洲线路一久 | 亚洲视频一区二区免费在线观看| 国产成人精品免费看| 国产日韩精品一区二区三区在线| 黄网站免费久久| 亚洲精品一区二区三区香蕉| 久草精品在线观看| 国产欧美一区二区三区鸳鸯浴| 国产盗摄一区二区| 亚洲素人一区二区| 色88888久久久久久影院按摩| 一区二区视频在线| 欧美另类变人与禽xxxxx| 日本色综合中文字幕| 欧美大尺度电影在线| 国产美女主播视频一区| 国产女主播一区| 色婷婷av久久久久久久| 亚洲成人高清在线| www成人在线观看| 波多野结衣在线aⅴ中文字幕不卡| 国产精品乱码一区二区三区软件 | 北条麻妃一区二区三区| 亚洲另类春色校园小说| 欧美男同性恋视频网站| 黄色日韩网站视频| 亚洲欧美电影一区二区| 欧美日韩一级片网站| 国产中文字幕一区| 最新日韩在线视频| 日韩午夜激情电影| av激情成人网| 视频一区欧美日韩| 国产日产精品1区| 欧美三级在线看| 国内精品第一页| 亚洲精品第1页| 精品久久久久久久久久久久久久久久久| 精品一区二区免费视频| 亚洲人吸女人奶水| 久久一留热品黄| 欧美日韩久久久| 成人亚洲精品久久久久软件| 亚洲一区二区影院| 国产色91在线| 在线播放91灌醉迷j高跟美女 | 99视频精品在线| 免费一级片91| 一区二区三区蜜桃网| 久久综合久久久久88| 欧美曰成人黄网| 粉嫩aⅴ一区二区三区四区| 五月天丁香久久| 亚洲第一会所有码转帖| 欧美激情资源网| 日韩欧美一级精品久久| 在线观看网站黄不卡| 国产成人免费在线| 久久不见久久见中文字幕免费| 亚洲精品视频在线观看免费| 精品电影一区二区三区| 欧美视频在线观看一区二区| 成人黄色一级视频| 国产自产高清不卡| 另类综合日韩欧美亚洲| 亚洲福利电影网| 亚洲免费三区一区二区| 国产精品区一区二区三区| 欧美大片免费久久精品三p| 欧美日韩一区视频| 色88888久久久久久影院野外| 不卡电影一区二区三区| 国产一区二区久久| 黑人精品欧美一区二区蜜桃| 日韩成人免费看| 偷拍日韩校园综合在线| 亚洲图片欧美视频| 一区二区免费在线| 一区二区在线观看不卡| 亚洲少妇中出一区| 亚洲色图在线播放| 亚洲日本va午夜在线影院| 一色桃子久久精品亚洲| 亚洲色图都市小说| 亚洲欧美日韩人成在线播放| 亚洲日本电影在线| 亚洲精品ww久久久久久p站| 亚洲精品日日夜夜| 亚洲影院免费观看| 五月婷婷综合激情| 日韩在线卡一卡二| 韩国成人精品a∨在线观看| 国内国产精品久久| 国产99久久久久| 99久久精品久久久久久清纯| 91亚洲大成网污www| 欧美系列一区二区| 3atv一区二区三区| 欧美本精品男人aⅴ天堂| 久久亚洲精品小早川怜子| 国产亚洲精品bt天堂精选| 首页国产欧美久久| 理论片日本一区| 国产69精品久久久久777| 91蜜桃免费观看视频| 欧美午夜精品一区二区蜜桃| 日韩一区二区三| 国产欧美一区在线| 一区二区三区四区视频精品免费| 亚洲午夜免费福利视频| 捆绑紧缚一区二区三区视频| 丁香桃色午夜亚洲一区二区三区| 不卡av在线网| 7777精品久久久大香线蕉| 久久久久久久综合日本| 亚洲欧美另类小说视频| 免费的成人av| 99re亚洲国产精品| 91精品国产aⅴ一区二区| 欧美国产精品专区| 日韩制服丝袜av| a级精品国产片在线观看| 91精品国产乱| 亚洲区小说区图片区qvod| 免费在线观看成人| 日本韩国精品一区二区在线观看| 日韩一区二区三区免费看| 日韩伦理av电影| 激情成人综合网| 欧美猛男gaygay网站| 欧美国产精品一区二区| 日韩一区欧美二区| 91在线免费视频观看| 久久美女艺术照精彩视频福利播放 | 91国产免费观看| 亚洲精品一区在线观看| 亚洲国产aⅴ天堂久久| 99久久综合国产精品| 精品理论电影在线| 亚洲国产日韩一级| 99精品在线观看视频| 久久久99精品免费观看不卡| 午夜影视日本亚洲欧洲精品| 93久久精品日日躁夜夜躁欧美| 精品国产a毛片| 日韩综合小视频| 欧美亚洲高清一区| 亚洲免费观看在线观看| 成人av免费在线播放| 2020国产精品自拍| 日本在线不卡视频| 欧美裸体一区二区三区| 亚洲已满18点击进入久久| 不卡一卡二卡三乱码免费网站 | 欧美日韩激情一区| 亚洲色图视频免费播放| 成人黄色小视频在线观看| 欧美精品一区二区精品网| 日本成人超碰在线观看| 欧美揉bbbbb揉bbbbb| 夜夜揉揉日日人人青青一国产精品| 成人精品一区二区三区中文字幕| 久久亚洲捆绑美女| 国产美女精品在线| 久久综合色8888| 国产成人精品网址| 国产精品嫩草影院av蜜臀| 高清在线观看日韩| 国产精品久久久久影院色老大|