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;
}
}
评论
暂无评论~~