MFC 编写 Ping

上一篇 / 下一篇  2009-08-11 18:39:08

#include "stdafx.h"
#include "Dialog.h"
#include "DialogDlg.h"
#include <winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
#include <iphlpapi.h>
#include <icmpapi.h>
#pragma comment(lib,"Iphlpapi.lib")

//发动ping命令按钮事件
void CDialogDlg::OnBnClickedLink()
{
 // TODO: 在此添加控件通知处理程序代码

 HANDLE hIcmpFile;
    unsigned long ipaddr = INADDR_NONE;
    DWORD dwRetVal = 0;
    char SendData[] = "Data Buffer";
    LPVOID ReplyBuffer = NULL;
    DWORD ReplySize = 0;
 
 
 PICMP_ECHO_REPLY reply;
 
 if(handle==INVALID_HANDLE_VALUE)
  MessageBox(_T("LoadLibrary ERROR"));

//你要ping 的IP
 ipaddr = inet_addr("192.168.1.118");
 ReplySize=sizeof(ICMP_ECHO_REPLY)+sizeof(SendData);
 ReplyBuffer=(void*)malloc(ReplySize);
 hIcmpFile=IcmpCreateFile();
 if (hIcmpFile == INVALID_HANDLE_VALUE)
  MessageBox(_T("file created failed")); 
 dwRetVal = IcmpSendEcho(hIcmpFile, ipaddr, SendData, sizeof(SendData),
        NULL, ReplyBuffer, ReplySize, 1000);
 if(dwRetVal!=0)
 {
  reply=(PICMP_ECHO_REPLY)ReplyBuffer;
  struct in_addr ReplyAddr;
  ReplyAddr.S_un.S_addr=reply->Address;
  CString str=_T("received from "); 
  char *p=inet_ntoa(ReplyAddr); 
  str.Format(_T("%s%S"),str,p); 
  MessageBox(str);
 }
 else
 {
  MessageBox(_T("IcmpSendEcho failed"));
 }
 IcmpCloseHandle(hIcmpFile);
 free(ReplyBuffer); 
}


TAG: MFC Ping 编写

 

评分:0

我来说两句

日历

« 2024-05-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 9723
  • 日志数: 40
  • 图片数: 3
  • 建立时间: 2007-07-26
  • 更新时间: 2009-08-11

RSS订阅

Open Toolbar