ether.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #ifndef _NET_ETHERNET_H_
  2. #define _NET_ETHERNET_H_
  3. #ifndef ETHER_ADDR_LEN
  4. #define ETHER_ADDR_LEN 6
  5. #endif
  6. #ifndef ETHER_TYPE_LEN
  7. #define ETHER_TYPE_LEN 2
  8. #endif
  9. #define ETHER_CRC_LEN 4
  10. #ifndef ETHER_HDR_LEN
  11. #define ETHER_HDR_LEN (ETHER_ADDR_LEN*2+ETHER_TYPE_LEN)
  12. #endif
  13. #ifndef ETHER_MIN_LEN
  14. #define ETHER_MIN_LEN 64
  15. #endif
  16. #ifndef ETHER_MAX_LEN
  17. #define ETHER_MAX_LEN 1518
  18. #endif
  19. #define ETHER_IS_VALID_LEN(foo)
  20. ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)
  21. /*
  22.  * Structure of a 10Mb/s Ethernet header.
  23.  */
  24. #ifndef HAVE_ETHER_HEADER_STRUCT
  25. struct ether_header {
  26. u_char ether_dhost[ETHER_ADDR_LEN];
  27. u_char ether_shost[ETHER_ADDR_LEN];
  28. u_short ether_type;
  29. };
  30. #endif
  31. /*
  32.  * Structure of a 48-bit Ethernet address.
  33.  */
  34. #ifndef HAVE_ETHER_ADDRESS_STRUCT
  35. struct ether_addr {
  36. u_char octet[ETHER_ADDR_LEN];
  37. };
  38. #endif
  39. #endif
  40. #ifndef _NS_ETHERNET_H_
  41. #define _NS_ETHERNET_H_
  42. class Ethernet {
  43. public: 
  44.         static void ether_print(const u_char *);
  45.         static char* etheraddr_string(const u_char*);
  46. static u_char* nametoaddr(const char *devname);
  47. private:
  48.         static char hex[];
  49. };   
  50. #endif