linux下 实现traceroute

  • 格式:doc
  • 大小:80.00 KB
  • 文档页数:8

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.#include

2.#include

3.#include

4.#include

5.#include

6.#include

7.#include

8.#include

9.#include

10.#include

11.#include

12.#include

13.#include

14.

15.struct ip

16.{

17.#if __BYTE_ORDER == __LITTLE_ENDIAN

18. unsigned int ip_hl:4; /* little-endian IP头长度(单位

为32位)4位 */

19. unsigned int ip_v:4; /* 版本号4 IP4用4 */

20.#endif

21.#if __BYTE_ORDER == __BIG_ENDIAN

22. unsigned int ip_v:4; /* version */

23. unsigned int ip_hl:4; /* header length */

24.#endif

25. u_int8_t ip_tos; /* 服务类型一般为0 */

26. u_short ip_len; /* 数据总长度 (单位为32位) */

27. u_short ip_id; /* 标识16 */

28. u_short ip_off; /* 分段偏移*/

29.#define IP_RF 0x8000 /* reserved fragment标

志 */

30.#define IP_DF 0x4000 /* dont fragment flag */

31.#define IP_MF 0x2000 /* more fragments flag */

32.#define IP_OFFMASK 0x1fff /* mask for fragmenting bits

*/

33. u_int8_t ip_ttl; /* 生存时间 */

34. u_int8_t ip_p; /* 传输协议 tcp是6 */

35. u_short ip_sum; /* 头校验和 */

36.struct in_addr ip_src, ip_dst; /* 源地址目标地址 */

37.};

38.

39.struct icmp

40.{

41.u_int8_t type; /* 消息类型 */

42. u_int8_t code; /* 代码类型 */

43. u_int16_t checksum; /* 校验位 */

44.union

45. {

46. u_char ih_pptr; /* ICMP_PARAMPROB */

47.struct in_addr ih_gwaddr; /* 网关地址 */

48.struct/* echo 数据包 */

49.{

50. u_int16_t id;

51. u_int16_t sequence;

52. } echo;

53.

54. u_int32_t ih_void;

55.

56.struct ih_pmtu

57. {

58. u_int16_t ipm_void;

59. u_int16_t ipm_nextmtu;

60.} ih_pmtu;

61.

62.struct ih_rtradv

63. {

64.u_int8_t irt_num_addrs;

65.u_int8_t irt_wpa;

66.u_int16_t irt_lifetime;

67. } ih_rtradv;

68. } un;

69.#define icmp_pptr un.ih_pptr

70.#define icmp_gwaddr un.ih_gwaddr

71.#define icmp_id un.echo.id

72.#define icmp_seq un.echo.sequence

73.#define icmp_void un.ih_void

74.#define icmp_pmvoid un.ih_pmtu.ipm_void

75.#define icmp_nextmtu un.ih_pmtu.ipm_nextmtu

76.#define icmp_num_addrs un.ih_rtradv.irt_num_addrs

77.#define icmp_wpa un.ih_rtradv.irt_wpa

78.#define icmp_lifetime un.ih_rtradv.irt_lifetime

79.

80.union

81.{

82.struct

83. {

84. u_int32_t its_otime;

85.u_int32_t its_rtime;