一、混杂模式
1、指一台机器的网卡能够接收所以经过它的数据包,而不论其目的地址是否是它
2、一般计算机网卡都工作在非混杂模式下,如果设置网卡为混杂模式需要root权限。
二、Linux下设置
1、设置混杂模式 ifconfig eth0 promisc
2、取消混杂模式 ifconfig etho -promisc
三、Linux下通过程序设置网卡混杂模式
struct ifreq ethreq;
strncpy(ethreq.ifr_name, "eth0", IFNAMSIZ);
if(ioctl(sock_raw_fd, SIOCGIFFLAGS, ðreq)!= 0) //获取eth0网络接口标志
{
perror("ioctl");
close(sock_raw_fd);
exit(-1);
}
ethreq.ifr_flags |= IFF_PROMISC;
if(ioctl(sock_raw_fd,SIOCSIFFLAGS,ðreq)!=0) //设置eth0网络接口标志
{
perror("ioctl");
close(sock_raw_fd);
exit(-1);
}