前言 在有些时候我们需要直接抓取并分析原始ip数据包(比如说netfilter内核框架中数据包的分析、原始套接字中数据包的分析),但是我们所能获得的ip数据包通常只是一个若干字节的在连续地址空间中存储的数据,比如存在数组char[MSG_SIZE]中,下面介绍如何分析原始ip数据包中的数据。 在开始分析包头之前我们假设原始ip数据包存储在缓存char buf[MSG_SZIE]中。 一、IP头的分析 众所周知,ip数据包的第一个包头便是ip头。ip包头采用结构体iphdr,该数据结构在<linux/ip.h>中定义。