nmicmpstructs.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //=============================================================================
  2. //  Microsoft (R) Network Monitor (tm). 
  3. //  Copyright (C) 1993-1999. All rights reserved.
  4. //
  5. //  MODULE: nmicmpstructs.h
  6. //
  7. //  Definitions/#defines for parsing ICMP frames.
  8. //=============================================================================
  9. #ifndef NMICMPSTRUCTS_H
  10. #define NMICMPSTRUCTS_H
  11. #include <nmipstructs.h>
  12. #ifdef __cplusplus
  13. extern "C"
  14. {
  15. #endif
  16. //
  17. // ICMP Frame Structure
  18. //
  19. typedef struct _RequestReplyFields 
  20. {
  21.    WORD ID;
  22.    WORD SeqNo;
  23. } ReqReply;
  24. typedef struct _ParameterProblemFields 
  25. {
  26.    BYTE Pointer;
  27.    BYTE junk[3];
  28. } ParmProb;
  29. typedef struct _TimestampFields 
  30. {
  31.    DWORD tsOrig;
  32.    DWORD tsRecv;
  33.    DWORD tsXmit;
  34. } TS;
  35. typedef struct _RouterAnnounceHeaderFields
  36. {
  37.     BYTE NumAddrs;
  38.     BYTE AddrEntrySize;
  39.     WORD Lifetime;
  40. } RouterAH;
  41. typedef struct _RouterAnnounceEntry
  42. {
  43.     DWORD Address;
  44.     DWORD PreferenceLevel;
  45. } RouterAE;
  46. typedef struct _ICMP 
  47. {
  48.    BYTE Type;
  49.    BYTE Code;
  50.    WORD Checksum;
  51.    union
  52.    {
  53.       DWORD    Unused;
  54.       DWORD    Address;
  55.       ReqReply RR;
  56.       ParmProb PP;
  57.       RouterAH RAH;     
  58.    };
  59.    union
  60.    {
  61.       TS       Time;
  62.       IP       IP;
  63. #pragma warning(disable:4200)
  64.       RouterAE RAE[0];
  65. #pragma warning(default:4200)
  66.    };
  67. } ICMP;
  68. typedef ICMP * LPICMP;
  69. typedef ICMP UNALIGNED * ULPICMP;
  70. #define ICMP_HEADER_LENGTH (8)
  71. #define ICMP_IP_DATA_LENGTH   (8)   // # of *BYTES* of IP data to attach to
  72.                                     // datagram in addition to IP header
  73. //
  74. // ICMP Packet Types
  75. //
  76. #define ECHO_REPLY                     0
  77. #define DESTINATION_UNREACHABLE        3
  78. #define SOURCE_QUENCH                  4
  79. #define REDIRECT                       5
  80. #define ECHO                           8
  81. #define ROUTER_ADVERTISEMENT           9
  82. #define ROUTER_SOLICITATION           10
  83. #define TIME_EXCEEDED                 11
  84. #define PARAMETER_PROBLEM             12
  85. #define TIMESTAMP                     13
  86. #define TIMESTAMP_REPLY               14
  87. #define INFORMATION_REQUEST           15
  88. #define INFORMATION_REPLY             16
  89. #define ADDRESS_MASK_REQUEST          17
  90. #define ADDRESS_MASK_REPLY            18
  91. #ifdef __cplusplus
  92. }
  93. #endif
  94. #endif NMICMPSTRUCTS_H