beta-songsxg.blog.chinaunix.net
s_x_g
全部博文(194)
Moblin(1)
Storage(1)
InfiniBand(7)
VPN(1)
ROOTKIT(4)
PHP(4)
Java(0)
C++(0)
C(2)
ASM(1)
Qt(1)
Ubuntu(0)
LinuxMint(0)
LFS(0)
Debian(0)
SuSE(0)
Kernel(0)
Redhat(0)
Tips(3)
Win7(0)
Win2008(0)
WinVista(0)
Win2003(0)
WinXP(0)
Win2000(0)
Win9X(0)
DOS(0)
2010年(8)
2009年(71)
2008年(109)
2007年(6)
Bsolar
Marshal_
deuso
adaslove
zhu19911
kallytin
linuxDOS
cjym2013
fangwm
分类: LINUX
2008-02-21 14:10:22
示例代码来自PF_RING:
static int set_if_promisc(const char *device, int set_promisc) { int sock_fd; struct ifreq ifr; if(device == NULL) return(-3); sock_fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); if(sock_fd <= 0) return(-1); memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); if(ioctl(sock_fd, SIOCGIFFLAGS, &ifr) == -1) { close(sock_fd); return(-2); } if(set_promisc) { if((ifr.ifr_flags & IFF_PROMISC) == 0) ifr.ifr_flags |= IFF_PROMISC; } else { /* Remove promisc */ if((ifr.ifr_flags & IFF_PROMISC) != 0) ifr.ifr_flags &= ~IFF_PROMISC; } if(ioctl(sock_fd, SIOCSIFFLAGS, &ifr) == -1) return(-1); close(sock_fd); return(0);}
sxg
上一篇:[转]与妻书
下一篇:反转一个单链表
登录 注册