用raw_socket可以读取到所有的流量,但是不可以截取请求进一步操作。
在混杂模式下的网卡能够接收一切通过它的数据,而不管该数据目的地址是否是它。如果通过程序将网卡的工作模式设置为 “混杂模式”,那么网卡将接受所有流经它的数据帧
wireshark能够获取到所有所有的网络请求也是基于这种模式。
这种方式能够成功的前提是所有的流量需要流经该网卡处于的主机,也就是说他只能获取到本机的网络流量。如果想要在某一台电脑来获取另外一台的数据流量,那么这就属于黑客的范畴了,而且必须要在同一个局域网内。比如使用arp诱骗可以实现
raw_socket是原套接字的方式,但是有个缺点是他会把你本机通信socket也截取,linux提供的有libpcap库,win对应的好像是winpcap,直接用就可以了,这个是截取的网卡数据。wireshake tcpdump都是根据这个来实现的。
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
截取所有网络请求,你的意思应该是想截取电脑所有通过网卡发送的数据报吧。
截取之后如果只是分析,wincap或者wireshark就足够了。
如果希望修改数据报并且转发,那需要另一台电脑B充当网关,A电脑连接B电脑而不连接路由器,B电脑双网卡,一个网卡负责接收A的所有数据报,另一个网卡负责转发(修改报头等参数),转发程序需要自己写