C/C++编写一个 Ping 程序,并能测试本局域网的所有机器是否在线?

需要用VC++做成图形界面

//关键代码如下:
#include "icmpapi.h"
#include "iphlpapi.h"

#pragma comment(lib,"iphlpapi.lib");

bool CPINGDlg::startping(char* IP) //成功返回true, 失败返回false
{
HANDLE hIcmpFile = NULL;
unsigned long ipaddr = INADDR_NONE;
DWORD dwRetVal = 0;
char SendData[] = "Data Buffer\0";
LPVOID ReplyBuffer = NULL;
DWORD ReplySize = 0;
// PICMP_ECHO_REPLY reply;
ipaddr = inet_addr(IP);
ReplySize = sizeof(ICMP_ECHO_REPLY)+sizeof(SendData);
ReplyBuffer = (void*)malloc(ReplySize);
hIcmpFile = IcmpCreateFile();
if (hIcmpFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("Ping 内部代码错误"));

return false;
}
dwRetVal = IcmpSendEcho(hIcmpFile, ipaddr, SendData, sizeof(SendData), NULL, ReplyBuffer, ReplySize, 1000);
// CloseHandle(hIcmpFile);
// free(ReplyBuffer);
if (dwRetVal != 0)
{
return true;
}
else
{
return false;
}
}来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答