Chinaunix

标题: 在LINUX下有没有哪个函数可以设置网卡模式 [打印本页]

作者: xjtuguochen    时间: 2005-05-15 14:55
标题: 在LINUX下有没有哪个函数可以设置网卡模式
我想把网卡设置成混杂模式
作者: win_hate    时间: 2005-05-15 15:43
标题: 在LINUX下有没有哪个函数可以设置网卡模式
ioctl


测试:


  1. #include <stdio.h>;
  2. #include <net/if.h>;
  3. #include <sys/socket.h>;
  4. #include <sys/raw.h>;
  5. #include <sys/ioctl.h>;

  6. int
  7. main ()
  8. {
  9.         int fd;
  10.         struct ifreq ifr;
  11.         char *dev;

  12.         dev="eth0";

  13.         fd = socket (PF_INET, SOCK_DGRAM, 0);
  14.         strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));

  15.         ioctl (fd, SIOCGIFFLAGS, &ifr);
  16.         if (ifr.ifr_flags & IFF_PROMISC)
  17.                 printf ("%s\n", "promisc on");
  18.         else
  19.                 printf ("%s\n", "promisc off");
  20. }
复制代码


打开:

  1. #include <stdio.h>;
  2. #include <net/if.h>;
  3. #include <sys/socket.h>;
  4. #include <sys/raw.h>;
  5. #include <sys/ioctl.h>;

  6. int
  7. main ()
  8. {
  9.         int fd;
  10.         struct ifreq ifr;
  11.         char *dev;

  12.         dev="eth0";

  13.         fd = socket (PF_INET, SOCK_DGRAM, 0);
  14.         strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));

  15.         ioctl (fd, SIOCGIFFLAGS, &ifr);
  16.         ifr.ifr_flags |= IFF_PROMISC;
  17.         ioctl (fd, SIOCSIFFLAGS, &ifr);
  18. }
复制代码


关闭:

  1. #include <stdio.h>;
  2. #include <sys/ioctl.h>;
  3. #include <net/if.h>;
  4. #include <sys/socket.h>;
  5. #include <sys/raw.h>;

  6. int
  7. main ()
  8. {
  9.         int fd;
  10.         struct ifreq ifr;
  11.         char *dev;

  12.         dev="eth0";

  13.         fd = socket (PF_INET, SOCK_DGRAM, 0);
  14.         strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));

  15.         ioctl (fd, SIOCGIFFLAGS, &ifr);
  16.         ifr.ifr_flags &= ~IFF_PROMISC;
  17.         ioctl (fd, SIOCSIFFLAGS, &ifr);
  18. }
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2