使用iphlpapi动态链接库函数实现ping功能

BOOL CAutoDlg::Ping()
{
	typedef	HANDLE	(WINAPI * pCreate)(VOID);
	typedef BOOL	(WINAPI *pClose)(HANDLE);
	typedef DWORD	(WINAPI *pSend)(HANDLE,IPAddr,LPVOID,WORD,PIP_OPTION_INFORMATION,LPVOID,DWORD,DWORD);
	pCreate pIcmpCreate;
	pClose	pIcmpClose;
	pSend pSendIcmp;
	HMODULE  hIcmp=LoadLibrary("iphlpapi.dll");
	pIcmpCreate=(pCreate)GetProcAddress(hIcmp,"IcmpCreateFile");
	pIcmpClose=(pClose)GetProcAddress(hIcmp,"IcmpCloseHandle");
	pSendIcmp=(pSend)GetProcAddress(hIcmp,"IcmpSendEcho");
	HANDLE iHandle;
	iHandle=pIcmpCreate();
	IPAddr pAddr;
	pAddr=(IPAddr)inet_addr("119.75.217.56");

	icmp_echo_reply pData;
	
	bool state=true;

	for(int i=1;i<=4;i++)
	{
		pSendIcmp(iHandle,pAddr,NULL,0,NULL,(LPVOID)&pData,sizeof(icmp_echo_reply),0);
		if (pData.Status==0)
		{
			
			
			
			pIcmpClose(iHandle);
			return TRUE;
		}
	}
	return FALSE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值