以前写过win32下面简单的sniff, 今天突然试试在linux下抓取http包。发现linux下与win32下有很大的不同点。
下面简单总结一下:
1.win下必须wsastartup,Linux直接使用
2.win下不需要指定对某个网卡进行监控,linux下须指定你想要用到的网站名称
3.win下使用ioctlsocket把网卡设置成混杂模式,而linux下则通过ioctl函数设置
4.虽然我们收到的包就是RAW形式的,但在win下面是从ip层开始,Linux是从ether层开始的。
好了,帖出我实验中的源码: