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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ping.cpp

?? 一個(gè)非常漂亮的802.1x客戶端源代碼
?? CPP
字號(hào):
// Ping.cpp: implementation of the CPing class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Mento Supplicant.h"
#include "Ping.h"
#include <winsock.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define PING_TIMES	2

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPing::CPing()
{
	m_iError = 0;
	m_sError = "沒(méi)有錯(cuò)誤發(fā)生";
	m_sHost = "localhost";
	m_iInterval = 2;
}

CPing::~CPing()
{

}

// Ping()
// Calls SendEchoRequest() and
// RecvEchoReply() and prints results
int CPing::DoPing(LPCSTR pstrHost)
{
	SOCKET	  rawSocket;
	LPHOSTENT lpHost;
	struct    sockaddr_in saDest;
	struct    sockaddr_in saSrc;
	DWORD	  dwTimeSent;
	DWORD	  dwElapsed;
	u_char    cTTL;
	int       nRet;

    WSADATA wsaData;
    WORD wVersionRequested = MAKEWORD(1,1);

	// Init WinSock
    nRet = WSAStartup(wVersionRequested, &wsaData);
    if (nRet)
    {
		ReportError(PING_INIT_ERROR," ** 初始化WinSock出錯(cuò)!!");
		return PING_INIT_ERROR;
    }

	// Check version
	if (wsaData.wVersion != wVersionRequested)
	{
		ReportError(VERSION_NOT_SUPPORT," ** 該WinSock版本不支持!!");
		return VERSION_NOT_SUPPORT;
	}

	// Create a Raw socket
	rawSocket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
	if (rawSocket == SOCKET_ERROR) 
	{
		ReportError( PING_SOCKET_ERROR, " ** 打開(kāi)ping連接錯(cuò)誤!" );
		return PING_SOCKET_ERROR;
	}

	// Lookup host
	lpHost = gethostbyname(pstrHost);

/*	if (lpHost == NULL)
	{
		ReportError(PING_HOST_NOTFOUND, " ** Host %s NOT found!!", m_sHost);
		return PING_HOST_NOTFOUND;
	}
//*/
	// Setup destination socket address
	saDest.sin_addr.s_addr = *((u_long FAR *) (lpHost->h_addr));
	saDest.sin_family = AF_INET;
	saDest.sin_port = 0;

	// Tell the user what we're doing
	ReportError(PING_WORKING, "正在用 %d 字節(jié)的數(shù)據(jù)ping %s [%s].",
				REQ_DATASIZE,
				pstrHost,
				inet_ntoa(saDest.sin_addr));

	// Ping multiple times
	// Send ICMP echo request
	SendEchoRequest(rawSocket, &saDest);

	// Use select() to wait for data to be received
	nRet = WaitForEchoReply(rawSocket);
	if (nRet == SOCKET_ERROR)
	{
		ReportError( PING_SOCKET_ERROR, " ** Ping時(shí)發(fā)生Socket錯(cuò)誤!!" );
		return PING_SOCKET_ERROR;
	}
	if (!nRet)
	{
		ReportError( PING_TIMEOUT_ERROR, " ** 超時(shí)錯(cuò)誤!!" );
		return PING_TIMEOUT_ERROR;
	}

	// Receive reply
	dwTimeSent = RecvEchoReply(rawSocket, &saSrc, &cTTL);

	// Calculate elapsed time
	dwElapsed = GetTickCount() - dwTimeSent;
/*		sMsg.Format("\nReply from: %s: bytes=%d time=%ldms TTL=%d", 
               inet_ntoa(saSrc.sin_addr), 
			   REQ_DATASIZE,
               dwElapsed,
               cTTL);
		AfxMessageBox(sMsg);*/
	
	nRet = closesocket(rawSocket);
	if (nRet == SOCKET_ERROR)
	{
		ReportError( PING_SOCKET_ERROR, " ** Socket關(guān)閉錯(cuò)誤!!" );
		return PING_SOCKET_ERROR;
	}

	// Free WinSock
    WSACleanup();

	ReportError(PING_SUCCESS, " !! 成功 !!");
	return PING_SUCCESS;
}


// SendEchoRequest()
// Fill in echo request header
// and send to destination
int CPing::SendEchoRequest(SOCKET s,LPSOCKADDR_IN lpstToAddr) 
{
	static ECHOREQUEST echoReq;
	static nId = 1;
	static nSeq = 1;
	int nRet;

	// Fill in echo request
	echoReq.icmpHdr.Type		= ICMP_ECHOREQ;
	echoReq.icmpHdr.Code		= 0;
	echoReq.icmpHdr.Checksum	= 0;
	echoReq.icmpHdr.ID			= nId++;
	echoReq.icmpHdr.Seq			= nSeq++;

	// Fill in some data to send
	for (nRet = 0; nRet < REQ_DATASIZE; nRet++)
		echoReq.cData[nRet] = ' '+nRet;

	// Save tick count when sent
	echoReq.dwTime				= GetTickCount();

	// Put data in packet and compute checksum
	echoReq.icmpHdr.Checksum = in_cksum((u_short *)&echoReq, sizeof(ECHOREQUEST));

	// Send the echo request  								  
	nRet = sendto(s,						/* socket */
				 (LPSTR)&echoReq,			/* buffer */
				 sizeof(ECHOREQUEST),
				 0,							/* flags */
				 (LPSOCKADDR)lpstToAddr, /* destination */
				 sizeof(SOCKADDR_IN));   /* address length */

	if (nRet == SOCKET_ERROR) 
		ReportError(PING_CONNECTION_ERROR, " ** 發(fā)送ping包出錯(cuò)!!");
	return (nRet);
}


// RecvEchoReply()
// Receive incoming data
// and parse out fields
DWORD CPing::RecvEchoReply(SOCKET s, LPSOCKADDR_IN lpsaFrom, u_char *pTTL) 
{
	ECHOREPLY echoReply;
	int nRet;
	int nAddrLen = sizeof(struct sockaddr_in);

	// Receive the echo reply	
	nRet = recvfrom(s,					// socket
					(LPSTR)&echoReply,	// buffer
					sizeof(ECHOREPLY),	// size of buffer
					0,					// flags
					(LPSOCKADDR)lpsaFrom,	// From address
					&nAddrLen);			// pointer to address len

	// Check return value
	if (nRet == SOCKET_ERROR) 
		ReportError(PING_CONNECTION_ERROR," ** 接收ping包響應(yīng)出錯(cuò)!!");

	// return time sent and IP TTL
	*pTTL = echoReply.ipHdr.TTL;
	return(echoReply.echoRequest.dwTime);
}
/*
int ErrLog(int iErrLevel , char* sFormat , ... )
{
	va_list vlInputVar;
	char sOutput[80];

	va_start( vlInputVar , sFormat );
	vsprintf( sOutput , sFormat , vlInputVar );
	if(iErrLevel>=1000)
		puts( sOutput );
	else
		puts("The error level is too small!\n");

	return 0;
}
*/
// What happened?
void CPing::ReportError(int iErrorNo, char *sFormat, ... )
{
	va_list arg_ptr;
	CString format;

	m_iError = iErrorNo;
	va_start(arg_ptr, format);
	sMsg.FormatV( sFormat, arg_ptr );
}


// WaitForEchoReply()
// Use select() to determine when
// data is waiting to be read
int CPing::WaitForEchoReply(SOCKET s)
{
	struct timeval Timeout;
	fd_set readfds;

	readfds.fd_count = 1;
	readfds.fd_array[0] = s;
	Timeout.tv_sec = m_iInterval;
    Timeout.tv_usec = 0;

	return(select(1, &readfds, NULL, NULL, &Timeout));
}


//
// Mike Muuss' in_cksum() function
// and his comments from the original
// ping program
//
// * Author -
// *	Mike Muuss
// *	U. S. Army Ballistic Research Laboratory
// *	December, 1983

/*
 *			I N _ C K S U M
 *
 * Checksum routine for Internet Protocol family headers (C Version)
 *
 */
u_short CPing::in_cksum(u_short *addr, int len)
{
	register int nleft = len;
	register u_short *w = addr;
	register u_short answer;
	register int sum = 0;

	/*
	 *  Our algorithm is simple, using a 32 bit accumulator (sum),
	 *  we add sequential 16 bit words to it, and at the end, fold
	 *  back all the carry bits from the top 16 bits into the lower
	 *  16 bits.
	 */
	while( nleft > 1 )  {
		sum += *w++;
		nleft -= 2;
	}

	/* mop up an odd byte, if necessary */
	if( nleft == 1 ) {
		u_short	u = 0;

		*(u_char *)(&u) = *(u_char *)w ;
		sum += u;
	}

	/*
	 * add back carry outs from top 16 bits to low 16 bits
	 */
	sum = (sum >> 16) + (sum & 0xffff);	/* add hi 16 to low 16 */
	sum += (sum >> 16);			/* add carry */
	answer = ~sum;				/* truncate to 16 bits */
	return (answer);
}

void CPing::SetInterval(int IInterval)
{
	m_iInterval = IInterval;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀精品久久久久久蜜臀 | 亚洲人吸女人奶水| 欧美福利电影网| 成人性生交大片免费看在线播放| 亚洲一线二线三线视频| 国产视频视频一区| 欧美高清性hdvideosex| 成人天堂资源www在线| 五月天激情综合网| 亚洲天堂网中文字| 日韩三级中文字幕| 欧美三级日韩在线| 9i看片成人免费高清| 久久国产成人午夜av影院| 伊人性伊人情综合网| 久久久精品国产免大香伊| 9191久久久久久久久久久| 97久久超碰国产精品| 国产一区二区看久久| 午夜久久福利影院| 亚洲黄色av一区| 最好看的中文字幕久久| 久久婷婷一区二区三区| 91麻豆精品国产自产在线观看一区| 99久久综合精品| 国产91丝袜在线18| 国产精品夜夜嗨| 乱一区二区av| 麻豆国产精品视频| 琪琪一区二区三区| 午夜国产精品影院在线观看| 亚洲精品五月天| 亚洲天堂免费看| 亚洲婷婷国产精品电影人久久| 日本一区二区三区在线观看| 日韩免费高清av| 日韩精品一区二区三区蜜臀| 91精品婷婷国产综合久久性色| 欧美色图片你懂的| 在线一区二区视频| 91成人免费在线视频| 色欧美88888久久久久久影院| 成人精品小蝌蚪| 99r精品视频| 一本久道中文字幕精品亚洲嫩| 不卡影院免费观看| 色综合色狠狠天天综合色| www.欧美亚洲| 色综合天天做天天爱| 99久久99久久综合| 色综合咪咪久久| 在线免费av一区| 8v天堂国产在线一区二区| 在线成人午夜影院| 日韩欧美国产电影| 久久久久国色av免费看影院| 久久嫩草精品久久久精品一| 国产欧美日本一区视频| 国产精品少妇自拍| 亚洲欧美偷拍三级| 天堂一区二区在线免费观看| 美女免费视频一区二区| 国产.欧美.日韩| 色香色香欲天天天影视综合网| 欧美色倩网站大全免费| 日韩一区二区三区视频| 久久精品一区二区三区不卡牛牛| 国产精品色婷婷久久58| 亚洲高清视频在线| 久久国产视频网| 97久久超碰精品国产| 欧美精品日日鲁夜夜添| 久久婷婷色综合| 一区二区三区色| 久久69国产一区二区蜜臀| 成人小视频在线| 欧美日韩视频在线观看一区二区三区| 欧美sm极限捆绑bd| 亚洲欧美日韩小说| 久久99国产精品成人| 91亚洲精品久久久蜜桃| 日韩久久久久久| 亚洲欧美另类久久久精品2019 | 欧美日本一区二区在线观看| 国产成人精品www牛牛影视| 精品一区二区三区免费观看| 国产成人欧美日韩在线电影| 欧美日韩一级片网站| 日韩欧美一区中文| 国产精品亲子伦对白| 日韩电影在线一区| 国产经典欧美精品| 色天天综合久久久久综合片| 欧美一区二区啪啪| 亚洲国产精品精华液2区45| 亚洲美女在线国产| 蜜臀久久久99精品久久久久久| 99久久久免费精品国产一区二区| 欧美综合久久久| 日韩欧美精品在线| 日韩伦理av电影| 免费在线观看精品| 成人h动漫精品| 欧美va在线播放| 亚洲欧美日韩在线不卡| 久久er99精品| 欧美私模裸体表演在线观看| 久久众筹精品私拍模特| 日本不卡一二三| 色综合久久中文字幕| 精品久久久久久久久久久久包黑料| 国产精品视频麻豆| 久久99久久精品| 欧美一区二区女人| 亚洲欧美另类综合偷拍| 国产乱对白刺激视频不卡| 欧美日韩亚洲综合一区二区三区| 国产女人18水真多18精品一级做| 亚洲国产综合在线| 91黄视频在线观看| 国产区在线观看成人精品| 五月天中文字幕一区二区| 成人av片在线观看| 久久久亚洲高清| 性做久久久久久免费观看| 91久久人澡人人添人人爽欧美 | 久久综合久久久久88| 婷婷中文字幕一区三区| 97久久精品人人爽人人爽蜜臀| 久久综合色之久久综合| 亚洲va国产天堂va久久en| 91蜜桃视频在线| 欧美激情一区二区三区| 麻豆国产欧美一区二区三区| 在线观看免费视频综合| 国产精品进线69影院| 国产白丝网站精品污在线入口| 日韩欧美国产高清| 一区二区三区日韩精品视频| 成年人午夜久久久| 久久综合九色综合久久久精品综合| 午夜不卡av免费| 欧美久久久久久久久| 亚洲一区二区美女| 7777精品伊人久久久大香线蕉超级流畅 | 成人91在线观看| 国产欧美精品在线观看| 国产麻豆精品theporn| 日韩小视频在线观看专区| 美女精品自拍一二三四| 在线一区二区三区四区五区| 日本欧美久久久久免费播放网| 国产精品视频看| 亚洲一区二区精品3399| 欧美三级乱人伦电影| 午夜在线电影亚洲一区| 欧美日韩在线一区二区| 亚洲二区视频在线| 欧美日韩一级视频| 午夜久久久影院| 欧美tickle裸体挠脚心vk| 国产一区二区在线影院| 国产亚洲一区二区三区| 高清不卡一区二区| 精品入口麻豆88视频| 国产suv精品一区二区883| 国产精品少妇自拍| 日本乱码高清不卡字幕| 亚洲综合成人在线| 欧美日韩在线播放一区| 日本va欧美va精品| 久久久久国色av免费看影院| 成人网在线免费视频| 最新热久久免费视频| 欧美一区二区视频网站| 精彩视频一区二区三区| 国产精品热久久久久夜色精品三区| 95精品视频在线| 亚洲va在线va天堂| 国产精品美女久久久久aⅴ国产馆| 99九九99九九九视频精品| 艳妇臀荡乳欲伦亚洲一区| 制服丝袜亚洲播放| 美女视频黄免费的久久 | 日本乱人伦aⅴ精品| 丝袜美腿成人在线| 久久久久国产精品麻豆ai换脸| 国产91丝袜在线播放九色| 午夜精品一区二区三区电影天堂| 日韩一本二本av| 99视频国产精品| 五月综合激情婷婷六月色窝| 久久综合九色综合欧美98| 欧美性做爰猛烈叫床潮| 九九国产精品视频| 伊人婷婷欧美激情| 亚洲精品一区二区三区福利| 色婷婷精品大在线视频 | 亚洲国产欧美日韩另类综合| 国产午夜精品福利|