allpromisc.c

来自「基于TCP/IP协议的网络入侵检测系统是在Linux平台下」· C语言 代码 · 共 31 行

C
31
字号
#include "nids.h"#if (HAVE_NEW_PCAP)#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>#include <sys/ioctl.h>int set_all_promisc(){	struct ifreq ifaces[16];	struct ifconf param;	int sock, i;	param.ifc_len = sizeof(ifaces);	param.ifc_req = ifaces;	sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);	if (sock <= 0)		return 0;	if (ioctl(sock, SIOCGIFCONF, &param))		return 0;	for (i = 0; i < param.ifc_len / sizeof(struct ifreq); i++) {		if (ioctl(sock, SIOCGIFFLAGS, ifaces + i))			return 0;		ifaces[i].ifr_flags |= IFF_PROMISC;		if (ioctl(sock, SIOCSIFFLAGS, ifaces + i))			return 0;	}	return 1;}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?