sniff,截取外部发送到你机器上的IP数据包.
sniffer 这类型的软件多了去了,都是大同小异的,我简单的实现了一个..下面描述下工作原理吧.
这样的小程序是在应用层通过套接字直接获取留进网卡的IP数据包,注意是流进的,同时获取到的是
原封的IP数据包,只有这样才可以对数据包进行分析来源和协议.
sniff不是直接通过调用底层的API,所以无法直接控制网卡的信息,如果要获取本机发出的包,或者说获取更底
层的协议的数据,就必须要从网卡驱动下手了,很多的网络防火墙就是这样做的.对这个我也不大了解,也是刚看了
别人的文章.没怎么深入,要了解的自己百度.
这几个是重要的数据结构,从socket中获得ip数据包后,你就可以进行分析
要记得的一点是:
IP包首部长度,这个值以4字节为单位.IP协议首部的固定长度为20个字节,如果IP包没有选项,那么这个值为5.
TCP包头呢貌似是以1/4字节为单位的-_-!
破空间不支持上传文件哦!!