Stay Hungry.Stay Foolish.
设置网卡混杂模式

方式一

void 
set_promisc (int sockfd, char *interface)
{
    int     s;  
    struct  ifreq ifr;

    strcpy(ifr.ifr_name, interface);  
  
    s = ioctl(sockfd, SIOCGIFFLAGS, &ifr);  
  
    if (s < 0) {  
        close(sockfd);  
        perror("can not get flags");  
        return;
    }  
  
    ifr.ifr_flags |= IFF_PROMISC;  
  
    s = ioctl(sockfd, SIOCSIFFLAGS, &ifr);  
    if (s < 0) {  
        close(sockfd);  
        perror("can not set flags");  
        return;
    }  
}
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
评论

暂无评论~~