1.网卡设为混杂模式:ifconfig eth0 promisc
2. 网卡设为混杂模式程序
#include "sys/types.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "errno.h"
#include "netdb.h"
#include "net/if.h"
#include "sys/ioctl.h"
extern int errno;
int open_fd()
{
int f, s;
struct ifreq ifr;
if ((f = socket(AF_INET, SOCK_PACKET, htons(0x800))) < 0) {
return(-1);
}
strcpy(ifr.ifr_name, "eth0");
if ((s = ioctl(f, SIOCGIFFLAGS, &ifr)) < 0) {
close(f);
return(-1);
}
ifr.ifr_flags |= IFF_PROMISC;
if ((s = ioctl(f, SIOCSIFFLAGS, &ifr)) < 0)
{
return(-1);
}
printf("Setting interface ::: %s ::: to promisc/n/n", ifr.ifr_name);
return(f);
}
int main() {
printf("1/n");
open_fd();
printf("2/n");
}