Linux下的网络监听技术

来源:互联网 发布:最终幻想15捏脸数据 编辑:程序博客网 时间:2024/06/06 05:04
相应的数据结构:

   这是linux的arp协议报头,其中ar_hrd是硬件地址的格式,ar_pro协议地址的格式,ar_hln是硬件地址的长度,ar_pln时协议地址的长度,ar_op是arp协议的分类0x001是arp echo 0x0002 是 arpreply.接下来的分别是源地址的物理地址,源ip地址,目标地址的物理地址,目标ip地址。Tcphdrip协议的tcp协议报头,以下是相应数据结构:


   这是Linux 下tcp协议的一部分与ip协议相同取BIG,其中source是源端口,dest是目的端口,seq是s序,ack_seq是a序号,其余的是tcp的连接标志其中包括6个标志:syn表示连接请求,urg表示紧急信息,fin表示连接结束,ack表示连接应答,psh表示推栈标志,rst表示中断连接。window是表示接受数据窗口大小,check是校验码,urg ptr是紧急指针。

    Udphdr 这是udp协议报头


    这是Linux下ip协议中udp协议的一部分,结构很明显source源端口,dest目的端口,len udp 长度,check 是校验码。Icmphdr 这是ip协议的icmp协议的报头


   这是linux下的ip协议中的icmp的协议,这里面主要的是前两项参数,其中type是icmp协议的类型,而code则是对type类型的再分析。如:type 0x03 是表示unsearchable,这时code的不同表示了不同的unsearchable:0x00表示网络不可寻,0x01表示主机不可寻,0x02表示协议不可寻,0x03表示端口不可寻,0x05表示源路由失败,0x06网络不可知,0x07主机不可知。Igmphdr这是ip协议的igmp协议报头


    这是Linux下的ip协议中的igmp协议,协议中主要是前面两个属性,Type表示igmp 协议的信息类型,code表示routing code。然后,将截取的数据帧的地址赋值给定义的结构。由此可根据不同的结构分析数据,得到我们需要的信息。