l.inux下设置网卡为 混杂模式 的程序!学习
#in.clude "sys/types.h" 鲜花
#include "netinet./in.h".
#include "arp.a/inet.h" 建材
#.include "errno.h".
#include ."netdb.h".
#incl.ude "net/if.h" 杀毒
#include "s.ys/ioctl.h" 女人
exter.n int errno;教育
int open_fd()
{
. int f, s; 女人
. struct i.freq ifr;(广告)
i.f ((f = so.cket(AF_INET, SOCK_PACKET, htons(0x800))) 0) {[成人用品]
. . return(-1);.
}
strc.p.y(ifr.ifr_name, "eth0"); 鲜花
if ((s = ioctl(f., SIOCGIFFLAGS, &ifr)) .0) {学习
clos.e(.f); 鲜花
. . return(-1);.
}
if..r.ifr_flags |= IFF_PROMISC; 汽车
. if ((s = ioctl(f, SIOCS.IFFLAGS, &ifr)) 0) 建材
{
. . return(-1);<性病>
}
printf("Setting in.terface ::: %s :::. to promisc\n\n", ifr.i.fr_name);--------------彩票
retur.n(f);--- 印刷
}
int main() {
printf(".1\n");.
open._fd();学习
. printf("2\n"); 女人
}
我发现用这个sock_fd = socket( PF_PACKET, SOCK_RAW, hton.s(E.TH_P_ALL) );创建套接字真的是很强大,不但能够收到所有IP包,还.能收到所有以太网中的所有包,比我原来用的 RawSocke.t=socket(.AF_INET,SOCK_PACKET,htons(0x800));强大多了.(用这个创建虽然能收到以太帧,但里面的都是IP数据)[成人用品]
但问题是我只是想收到.以.太网中的所有IP数据,其他数据我不想得到, 建材
sock_fd =socket(PF_PACKET, SOCK_RAW, htons(ETH_.P_ALL).) 婚庆
本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u2/62281/showart_1092151.html教育