sniff,截取外部发送到你机器上的IP数据包.

来源:互联网 发布:尹恩惠 知乎 编辑:程序博客网 时间:2024/04/29 23:22

sniff,截取外部发送到你机器上的IP数据包.

sniffer 这类型的软件多了去了,都是大同小异的,我简单的实现了一个..下面描述下工作原理吧.

这样的小程序是在应用层通过套接字直接获取留进网卡的IP数据包,注意是流进的,同时获取到的是

原封的IP数据包,只有这样才可以对数据包进行分析来源和协议.

 

sniff不是直接通过调用底层的API,所以无法直接控制网卡的信息,如果要获取本机发出的包,或者说获取更底

层的协议的数据,就必须要从网卡驱动下手了,很多的网络防火墙就是这样做的.对这个我也不大了解,也是刚看了

别人的文章.没怎么深入,要了解的自己百度.

 

 

这几个是重要的数据结构,从socket中获得ip数据包后,你就可以进行分析

要记得的一点是:

IP包首部长度,这个值以4字节为单位.IP协议首部的固定长度为20个字节,如果IP包没有选项,那么这个值为5.
TCP包头呢貌似是以1/4字节为单位的-_-!

破空间不支持上传文件哦!!

原创粉丝点击