MyCapView.h
上传用户:xakehao
上传日期:2013-08-28
资源大小:100k
文件大小:4k
源码类别:

CA认证

开发平台:

Visual C++

  1. // MyCapView.h : interface of the CMyCapView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MYCAPVIEW_H__08EE81CC_43A3_41A0_AD4F_824621E1FE54__INCLUDED_)
  5. #define AFX_MYCAPVIEW_H__08EE81CC_43A3_41A0_AD4F_824621E1FE54__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <pcap.h>
  10. //#include <vector>
  11. //////////////////////////////////////////////////////////
  12. //GLOBAL DEFNITION
  13. UINT ThreadFunc(LPVOID pParam);
  14. /* 4 bytes IP address */
  15. typedef struct ip_address{
  16. u_char byte1;
  17. u_char byte2;
  18. u_char byte3;
  19. u_char byte4;
  20. }ip_address;
  21. /* IPv4 header */
  22. typedef struct ip_header{
  23. u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits)
  24. u_char tos; // Type of service 
  25. u_short tlen; // Total length 
  26. u_short identification; // Identification
  27. u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits)
  28. u_char ttl; // Time to live
  29. u_char proto; // Protocol
  30. u_short crc; // Header checksum
  31. ip_address saddr; // Source address
  32. ip_address daddr; // Destination address
  33. u_int op_pad; // Option + Padding
  34. }ip_header;
  35. /* UDP header*/
  36. typedef struct udp_header{
  37. u_short sport; // Source port
  38. u_short dport; // Destination port
  39. u_short len; // Datagram length
  40. u_short crc; // Checksum
  41. }udp_header;
  42. typedef struct tcp_header{
  43. u_short tcpsport;
  44. u_short tcpdport;
  45. unsigned long int  sernum;
  46. unsigned long int acknum;
  47. u_char len;
  48. u_char  bit;
  49. u_short winlen;
  50. u_short tcpchecksum;
  51. u_short point;
  52. u_int op_pad;
  53. }tcp_header;
  54. typedef struct icmp_header{
  55. u_char type;
  56. u_char code;
  57. u_short checksum;
  58. u_short identifier;
  59. u_short sernum;
  60. }icmp_header;
  61. /* prototype of the packet handler */
  62. void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);
  63. typedef struct tagTHREADPARMS
  64. {
  65.   //HWND  hWnd;
  66.   char szName[255];
  67.   u_int netmask;
  68. }THREADPARMS;
  69. typedef struct tagPACKET
  70. {
  71. char timestr[16];
  72.   ip_header   IpHead;
  73.   udp_header  UdpHead;
  74.   tcp_header  TcpHead;
  75.   icmp_header IcmpHead;
  76. }PACKET;
  77. ////////////////////////////////////////////////////////
  78. class CMyCapView : public CListView
  79. {
  80. protected: // create from serialization only
  81. CMyCapView();
  82. DECLARE_DYNCREATE(CMyCapView)
  83. // Attributes
  84. public:
  85. CMyCapDoc* GetDocument();
  86. // Operations
  87. public:
  88. // Overrides
  89. // ClassWizard generated virtual function overrides
  90. //{{AFX_VIRTUAL(CMyCapView)
  91. public:
  92. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  93. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  94. protected:
  95. virtual void OnInitialUpdate(); // called first time after construct
  96. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  97. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  98. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  99. //}}AFX_VIRTUAL
  100. // Implementation
  101. public:
  102. char m_szName[255];
  103. char m_szDescription[255];
  104.   char m_szNetmask[16];
  105. virtual ~CMyCapView();
  106.   CWinThread *pThread;
  107.   afx_msg LONG OnGetPacket(WPARAM wParam, LPARAM lParam);
  108. #ifdef _DEBUG
  109. virtual void AssertValid() const;
  110. virtual void Dump(CDumpContext& dc) const;
  111. #endif
  112. protected:
  113. // Generated message map functions
  114. protected:
  115. //{{AFX_MSG(CMyCapView)
  116. afx_msg void OnFileStart();
  117. afx_msg void OnOptionCard();
  118. afx_msg void OnFileStop();
  119. afx_msg void OnClick(NMHDR* pNMHDR, LRESULT* pResult);
  120. afx_msg void OnFileSave();
  121. afx_msg void OnOptionFilter();
  122. //}}AFX_MSG
  123. DECLARE_MESSAGE_MAP()
  124. };
  125. #ifndef _DEBUG  // debug version in MyCapView.cpp
  126. inline CMyCapDoc* CMyCapView::GetDocument()
  127.    { return (CMyCapDoc*)m_pDocument; }
  128. #endif
  129. /////////////////////////////////////////////////////////////////////////////
  130. //{{AFX_INSERT_LOCATION}}
  131. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  132. #endif // !defined(AFX_MYCAPVIEW_H__08EE81CC_43A3_41A0_AD4F_824621E1FE54__INCLUDED_)